自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Daniel

比你优秀的人,却比你还努力

  • 博客(100)
  • 收藏
  • 关注

原创 计算几何模板

#include<bits/stdc++.h>#define vct pointusing namespace std;const double pi=atan2(0,-1);const double eps=1e-8;int sgn(double d){ if(fabs(d)<eps)return 0; return d<0?-1:1;}struct point{

2016-10-07 22:28:41 340

原创 poj1797Heavy Transportation(dijkstra)

这题和昨天做的poj2253 Frogger(用单源最短路dijkstra的思路求解) 几乎一模一样,只是点的数量范围从200变成了1000,不优化O(n^3)肯定超时,所以要用优先队列优化到O(n^2logn)。 需要注意的一点就是两点不可达则令w=0。 如果起点和终点重合,那么输出一个不小于1000000的数即可。#include<cstdio>#include<cstring>#inc

2016-08-01 12:33:37 366

原创 poj2253 Frogger(用单源最短路dijkstra的思路求解)

???????????????n????????????????????????????????????????????n???????????????????????dijkstra???????????d[i]??????i????????w[i][j]???i?j?????? ??? 1. ??i???????????j??d[i]??????d[i]=min(max(d[j],w[i]

2016-07-31 20:43:25 432

原创 %f和%lf

scanf:float用%f,double用%lfprintf:float和double都用%f,因为严格来说printf没有定义%lfPOJ 1521 Entropy(求哈夫曼编码)用%lf输出wa到死,用%f就ac了

2016-07-31 15:06:20 893

原创 poj1065 Wooden Sticks(没有交集元素的lis的条数)

题意:给你n个棍子,棍子有两个属性l和w,开启机器加工这些棍子,如果满足l1<=l2且w1<=w2,加工完棍子1之后便可以加工棍子2,否则要再次启动机器,问最少要启动几次? 题意等价于:给出若干个偏序,求出这样一个集合的大小,该集合中任意两个偏序都不可比较。分析:如果将棍子按照其中一个属性升序(属性值相同就按另一属性值升序),那么就是求另一个属性的lis链最少条数,要求各条lis链之间不包含相同下

2016-07-30 18:32:52 392

原创 二分图判定

如果图中的点可以划分成两个集合使得集合内部的点之间没有边相连。 判定方法就是二色染色法,将一个点染成一种颜色,与之相邻的点染成另一种颜色,如果发现相邻两点颜色相同,则不是二分图。#include<bits/stdc++.h>using namespace std;const int maxn=1000;vector<int>nxt[maxn+5];int vis[maxn+5];bool d

2016-07-29 19:49:23 313

原创 poj1011Sticks(dfs+剪枝)

将n(n<=64)个木棒拼接成若干等长的木棒,要求等长的木棒越短越好(设为len)。 一看就是一个复杂度为O(n!)的dfs,肯定会超时,所以要加上一些剪枝才行。由于木棒越长越不灵活,所以要优先考虑,因此将木棒降序排序。搜索中如果当前拼接的木棒总长再接上一根木棒x之后长度为len,这种方案最终不成功,那么比x短的木棒不再考虑。如果拼接过程中一根都没拼,最终却失败,那么别的木棒不再考虑。如果

2016-07-29 15:24:32 323

原创 hdu5763Another Meaning 2016 Multi-University Training Contest 4(kmp+dp)

首先用kmp找出所有模式串的位置放在id中(vector类型),然后做dp,dp方程为: 对于第i个位置,如果第j( j < i 中最大的 j )个位置满足 id[i]-id[j]>=son.size()(即模式串在主串中的这两个位置不重叠), 则d[i]=d[i-1]+d[j]; 如果这个j不存在则d[i]=d[i-1]+1。#include<bits/stdc++.h>using na

2016-07-28 20:34:05 258

原创 最近公共祖先lca离线

利用dfs和并查集实现点对的最近公共祖先,首先递归到叶子节点,然后在返回时确定父子关系,按照这样的顺序确定的父子关系之后出现的公共父节点便是最近公共祖先#include<bits/stdc++.h>using namespace std;const int maxn=1000;const int maxm=1000;int lca[maxn+5][maxn+5];vector<int>nxt

2016-07-27 20:33:14 247

原创 线段树点修改 区间查询

const int maxn=1000;int sum[maxn*4];void build(int cur,int l,int r){ if(l==r){ cin>>sum[cur]; return; } int m=(l+r)/2; if(p<=m)update(cur*2,l,m); else update(cur*2+1

2016-07-26 20:39:38 530

原创 rmq区间最值

const int maxn=1000;const int maxb=10;//maxb=log2(maxn)int n;int a[maxn+5];int d[maxn+5][maxb+5];void init(){//初始化d数组 for(int i=1;i<=n;i++)d[i][0]=a[i];//j为0 for(int j=1;(1<<j)<=n;j++){

2016-07-26 20:06:23 209

原创 树状数组

#include<bits/stdc++.h>using namespace std;const int maxn=1000;int a[maxn+5];int c[maxn+5];int n;int lowbit(int x){ return x&(-x);}void add(int x,int d){//将a[x]增加d,修改就往右 while(x<=n){

2016-07-26 19:03:55 217

原创 poj1221 UNIMODAL PALINDROMIC DECOMPOSITIONS

题意很简单,给你一个正整数数n,将n拆分成一个正整数数字序列,要求数字序列和为n且是个回文并且左半部分的序列非降。问n拆分成这样的序列有几种方案?设d(n,k)表示n左右两边是k的时候的方案数,那么递推式: 表示当前这一种方案(n,k)加上方案(n-2i,i)的方案数,注意一下边界。本题其实就是一个递推式,由于用到了记忆化所以就写得跟dp一样了。。。。#include<cstdio>#inc

2016-07-25 20:30:54 521

原创 关机时间长 蓝屏driver power state failue

显卡驱动有问题,找到合适自己电脑的显卡驱动安装即可解决。

2016-07-24 22:22:44 2358 1

原创 ubuntu引导问题

ubuntu在安装前: 首先要在bios中将security boot设置成disable( 如果设置成enable,将不会出现引导,但是可以在设置成disable之后,用boot repair修复引导 ),然后将启动改成uefi only或者uefi first,如果是legacy或legacy first的话,将不会出现引导,而且连修复都修复不了。如何用boot repair修复引导(确保

2016-07-22 16:34:02 588

原创 磁盘类型由动态转换成基本

打开命令行 输入: diskpart 调用分区命令 list disk 列出所有磁盘 select disk 0 选中磁盘0 convert basic 转换成基本类型,此操作将删除该磁盘上的所有数据

2016-07-22 16:12:01 3347

原创 win7安装到gpt分区

分区格式以前是mbr格式,现在多了gpt格式(用于64位计算机),gpt格式比mbr格式的读写速度快。 win7安装在mbr格式(win7安装在gpt格式分区时会弹出错误对话框),win8、win10安装在gpt格式。 将win7安装在gpt格式分区上也非常简单,只需要将win8(或win10)的引导文件bootmgfw.efi(获取方式有两种:一、win8(或win10)系统下的C:\Wind

2016-07-22 16:05:34 4715

原创 最短编辑距离

51nod 1183 编辑距离 题意:插入或删除或修改最少的字符,使两个字符串相同 设d[i][j]表示字符串a[1~i]和b[1~j]的最小编辑距离,则 注意边界。#include<bits/stdc++.h>using namespace std;const int maxn=1000;const int INF=0x3f3f3f3f;char a[maxn+5];char

2016-07-18 12:48:47 285

原创 错误信息:Address already in use: connect

原因是短时间内new Socket操作过多, 而socket.close()操作并不能立即释放绑定的端口, 而是把端口设置为TIME_WAIT状态过段时间(默认240s)才释放, (用netstat -na可以看到)最后系统资源耗尽, (windows上是耗尽了pool of ephemeral ports 这段区间在1024-5000之间),一种最容易实现但是很耗时的解决办法就是在new Sock

2016-07-12 19:25:29 1224 1

原创 输入输出流

流的关闭一定要放在finally中,因为要确保在异常发生情况下仍然可以关闭流。File构造函数做的事情大概有:(1)保存文件名及路径。File构造函数没做的事情大概有:(1)保存文件类型。

2016-07-12 19:23:42 182

原创 单源最短路,迪杰斯特拉算法

一个包含n个结点的图,求其他点到源点s的最短距离。 设d[i]表示结点i到s的最短路径的长度,显然有d[s]=0; 设vis[i]表示i是否在集合S中,集合S中存放的是已经求得的最短路径的结点。 算法步骤: 首先在V-S集合中找到最小的d的下标k,然后将k加入到集合S中(令vis[k]=true),然后更新d值即可(令d[i]=min(d[i],d[k]+w[k][i]),其中w[k][i]

2016-07-04 12:51:50 388

原创 Miller-Rabin素数判定O((logn)^2)

证明见《算法分析与设计——c++语言描述(第2版)》的第232页,写的很详细。 其中用到了快速幂来判定是否满足费马小定理,并且判定x*x%n==1的解是否只有x=1和x=n-1#include<bits/stdc++.h>using namespace std;int fast(int a,int n,int p){//就是个快速幂,true则必为合数,false则以高概率为素数 int

2016-07-03 21:43:01 493

原创 取若干个数求和等于k

51nod1268 和为K的组合 方法一:由于k最大取到20*1000000,所以用01背包可以解决,复杂度O(n * k)#include<bits/stdc++.h>using namespace std;int a[25];int n,k;int f[1000000+5];int main(){ ios::sync_with_stdio(false); cin>>n>

2016-07-02 22:48:24 995

原创 c++关闭io同步流

ios::sync_with_stdio(false); 对scanf,printf和cin,cout都有用,后者貌似更快

2016-07-02 21:46:13 2732

原创 Qt Creator设置代码自动补全

【tools】 -> 【options】->【environment】 ->【 Keyboard】->【TextEdit】->【CompleteThis】在【Key sequence】编辑框中(下图红色方框标出)输入字符串”Enter”即可将代码补全快捷键设置成回车,因为我习惯了eclipse的回车补全。。。。

2016-06-26 16:37:51 1627

原创 Qt5以上的建立空Qt项目时

因版本问题,头文件引用要由#include < QApplication > 更改为#include < QtWidgets/QApplication>

2016-06-26 16:24:43 528

原创 选课网站

211.69.128.65 211.69.128.66 211.69.128.67 211.69.128.68 211.69.128.69 211.69.128.70 211.69.128.71 211.69.128.72 211.69.128.73 211.69.128.74 211.69.128.75 211.69.143.143 211.69.143.144 211.

2016-06-24 14:32:49 897

原创 JPanel填充背景图片,且图片跟随窗口大小缩放

import java.awt.Graphics;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;public class FullImage extends JFrame { public FullImage() {

2016-06-06 21:44:31 10861 2

原创 connection.prepareStatement(sql).execute()返回值boolen类型什么意思?

如果sql是select查询语句,返回值为true; 否则是false; 如果语句本身错误会抛出异常。

2016-06-06 08:36:53 1987

原创 访问限制:由于对必需的库 C:\Program Files\Java\jre1.8.0_73\lib\rt.jar 具有一定限制,因此无法访问类型 CachedRowSetImpl

【项目】->【右键】->【属性】->【Java构建路径】->【库】 将【JRE系统库】移除,然后【添加库】将【JRE系统库】重新添加进去就好了

2016-06-06 07:53:03 8750 4

原创 kmp

#include<bits/stdc++.h>using namespace std;int next[100];string father,son;void getnext(){ next[0]=-1; int j=0,k=-1; while(j<son.size()){ if(k==-1||son[j]==son[k])next[++j]=++k;

2016-05-25 17:58:20 202

原创 生成随机数

调用一次srand(time(NULL));初始化“随机数种子”,然后使用rand()即可,产生的随机数在闭区间 [0 , RAND_MAX] ,RAND_MAX至少为32767(2^15-1),是个const量,可以直接打印出来。#include<bits/stdc++.h>using namespace std;int main(){ cout<<RAND_MAX<<endl;

2016-05-25 14:12:40 217

原创 插入最少字符使原串变成回文串

51nod1092 回文字符串 解法一: 将原串逆序之后求一下LCS即可:#include<bits/stdc++.h>using namespace std;const int maxn=1000;char a[maxn+10];char b[maxn+10];int sum[maxn+10][maxn+10];int main(){ scanf("%s",a+1);

2016-05-24 18:00:27 4538

原创 Manacher算法O(n)求最长回文

证明见此处 51nod1089最长回文子串 V2(Manacher算法)#include<cstdio>#include<cmath>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>#include<string>#include<sstream>#include<vector>#inc

2016-05-24 15:52:53 246

原创 整除

整除规则第四条(4):最后两位能被4整除的数,这个数就能被4整除。   整除规则第七条(7):把个位数字截去,再从余下的数中,减去个位数的2倍,差是7的倍数,则原数能被7整除。   整除规则第八条(8):最后三位能被8整除的数,这个数就能被8整除。   整除规则第九条(9):每一位上数字之和能被9整除,那么这个数就能被9整除。   整除规则第十一条(11):将一个数从右往左数,将奇数位上的数

2016-05-24 13:34:47 1088

原创 大数组合数取模(逆元+打表)

将阶乘O(n)打表之后C(n,m)便可O(1)求出,除法取模用逆元解决 hdu5698瞬间移动#include<bits/stdc++.h>using namespace std;const int maxn=200000;const int p=1000000007;int f[maxn+10];void init(){//阶乘 f[0]=1; for(int i=1;i

2016-05-23 11:04:43 2765 1

原创 SQL Server2014如何打开协议

1.在开始菜单打开【SQL Server2014配置管理器】 2. 3.选择【IP地址】,将【IP1】和【IP10】的【IP地址】改成127.0.0.1并将【已启用】设成【是】,将【IPAll】的【TCP端口】改成1433,然后【确定】。 4.重启计算机

2016-05-14 12:02:52 1446

原创 JDBC连接SQL Server2014

安装SQL Server2014采用SQL Server身份验证方式而不是windows身份验证方式。SQL Server2014开启协议。在telnet服务打开的前提下,使用telnet命令测试1433端口是否打开:在【命令提示符】下输入 telnet 127.0.0.1 1433,若提示“不能打开到主机的连接,在端口 1433: 连接失败”,则说明1433端口没打开,返回第2步重新操作。在

2016-05-14 11:35:27 2211

原创 Windows如何开启telnet服务

【控制面板】->【程序】->【程序和功能】->【启用或关闭Windows功能】 在【Telnet客户端】前面打勾然后点击【确定】,等待安装完毕即可

2016-05-14 10:35:05 6879

原创 map二维数组及遍历

#include<iostream>#include<map>using namespace std;map<int,map<int,int> >a;int main(){ a[1][1]=1; a[1][2]=2; a[2][1]=3; for(map<int,map<int,int> >::iterator i=a.begin();i!=a.end();i++)

2016-05-13 10:50:41 7242

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除