- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 strncpy的用法
char* strncpy(char*dest, char*src, size_tnum );功能:(c/c++)复制src中的内容(字符,数字、汉字....)到dest,复制多少由num的值决定,返回指向dest的指针。如果遇到null字符('\0'),且还没有到num个字符时,就用(num - n)(n是遇到n
2014-03-31 09:51:20 650
原创 hdu 3549 最大流
#include#include#include#includeusing namespace std;#define inf 2000000000#define N 30int map[N][N];int pre[N],flow[N],start,end;int bfs(){int now,i;memset(pre,-1,sizeof(pre));
2014-03-26 21:44:06 472
原创 hdu 1532&&poj1273 基础最大流
#include#include#include#includeusing namespace std;#define N 300#define inf 2000000000int map[N][N];int start,end,flow[N],pre[N];int bfs() { int i,now; memset(pre,-1,sizeof(p
2014-03-26 18:11:27 440
原创 hdu 4046 树状数组
#include#include#define N 51000char s[N];int a[N],n;int number(int x) {return x&-x;}void creat(int x,int k) {int i;for(i=x;i a[i]+=k;}int sum(int x) {int su=0,i;for(i=
2014-03-25 14:45:29 511
原创 hdu 1220组合数学
两个立方体相交的点数有0 1 2 4不考虑相交点数的话有C(n,2)个立方对。而求不超过两个交点的对数,即为用总的减去有四个交点的对数,而四个交点即为同面四个交点的对数为相同的面的个数为(所有的小立方体 的所有面(6*n*n*n)-外面的6个大面(6*n*n))/2所以得到n*n*n*(n*n*n-1)/2-(6*n*n*n-6*n*n)/2#includeint ma
2014-03-20 15:16:02 447
原创 hdu 4550
c:#include#include#define N 300int f[N];char s[N];int main() {int t,m,i,front,tear,j;char min;scanf("%d",&t);while(t--) {scanf("%s",s);memset(f,0,sizeof(f));m=strlen(s);fr
2014-03-19 17:42:44 503
原创 请问spfa+stack 和spfa+queue 是什么原理
一个是bfs加迭代一个是dfs加迭代请问迭代是什么就是不断地做,做到没有更优的解为止或者是不断得做,做到逼近答案为止。。
2014-03-19 15:52:49 814
转载 Dijkstra、Bellman_Ford、SPFA、Floyd算法复杂度比较
http://blog.csdn.net/xiazdong/article/details/8193680
2014-03-19 14:47:00 612
原创 hdu 1575 矩阵快速幂
#include#include#define N 100int map[N][N];int power(int n,int c) { int sum[N][N],i,j,k,mapan[N][N]; for(i=1;i for(j=1;jsum[i][j]=map[i][j]; c--; while(c) { if(
2014-03-18 10:41:08 459
原创 hdu 3064
1:前n项和公式:1+2+3+...+n = n*(n+1)/22:前n项平方和公式:1^2+2^2+.........+n^2=n*(n+1)*(2n+1)/6#include#includeint main() {__int64 t,x,y;__int64 ans,sum;double a,b;while(scanf("%I64d",&t)!=EOF) {
2014-03-17 21:10:14 637
原创 hdu 2527哈夫曼树(二叉树的运用)
#include#include#define N 100#define INF 2000000000 int b[N]; char s[100001];struct nodee{ int parent,lson,rson,visit,weight;}a[N];int main() { int t,n,m,count,i,j,max1
2014-03-17 20:30:37 821
原创 zoj 3693
#include#includeint main() { int n,k,i;double w,s;char str[30];while(scanf("%d%lf%d",&n,&w,&k)!=EOF) { i=(n+2)/k; n=n+2-i; s=n*w/2; sprintf(str,"%lf",s); i=0; whi
2014-03-12 14:51:39 427
原创 fzu 2129
第i个元素a未出现过:dp[i] = (2 * dp[i-1] + 1) % mod;visit[a]代表a最后出现的位置第i个元素a出现过:dp[i] = (2 * dp[i-1] - dp[visit[a]-1]) % mod;(注意判负)例abb第一个b : a b ab第二个b :a b ab ab bb abb故要减去dp[visit[a]-
2014-03-12 14:29:18 531
原创 fzu 2124
#include#include#include#include#include#includeusing namespace std;#define N 30char map[N][N];struct node {double t;int x,y,f;friend bool operator return a.t>b.t;
2014-03-11 18:25:41 577
原创 fzu 2128
第一组实例aaaa2aaaa第二组a1c第三组abcdef2abcdbcd第四组abcdef2abcdbcde第五组aaaa2aaa第六组lgcstraightlalongahisnstreet5strlongtreebigintegerellipse
2014-03-11 16:15:08 436
原创 fzu 2125
#include#includeint total(int x,int m) {int sum=0;while(x>0) { sum+=x%m; x/=m;}return sum;}int main() { __int64 n,suma,i; int m,t,ans,j,h;scanf("%d",&t);while(t--) {sca
2014-03-11 15:09:56 363
原创 fzu 2122
#include#include#define N 51000char s1[200],s2[200],s[N];int main() { int n,m,len,i,j,f;char ch,chr;while(scanf("%s",s1)!=EOF) {getchar();gets(s2);gets(s);len=strlen(s); m
2014-03-11 14:45:02 399
原创 hdu 4707 bellman
最短路的优先队列做法:#include#include#include#define N 100010#define inf 0x3fffffffusing namespace std;int first[N],next[N],u[N],v[N],w[N],d[N];int main(){int t,i,e,cnt,dis,n;scanf("%d",&
2014-03-11 13:30:10 526
原创 sicily 10330. Cutting Sausages
#includeint main() { int n,m,j,k; while(scanf("%d%d",&n,&m)!=EOF) {j=0;while(n%m!=0) {//将剩余的几分之几等的香肠看成n根香肠继续分给没有香肠的人if(n>m)//每个人分n/m根香肠后剩余的香肠继续分n=n%m;k=(m%n==0?m/n-1:m/n);//当前分的香肠需
2014-03-09 19:55:43 600
原创 hdu 1527威佐夫博弈
#include#includeint main() { int a,b,c; while(scanf("%d%d",&a,&b)!=EOF) { if(a c=a-b; a=(int)(1.0*c*(1+1.0*sqrt(5.0))/2); if(a==b)printf("0\n");elseprintf("1\n")
2014-03-09 12:00:40 505
原创 hdu 1506
#include//两组数据4 2 2 5 5 结果10 //6 2 5 2 5 5 2 结果12#include//求左右大于等于当前数的长度乘于这个数#define N 101000__int64 l[N],r[N],a[N];int main() { __int64 n,h,i,ans; while(scanf("%I
2014-03-09 11:26:20 468
原创 hdu 1878 欧拉回路
#include#include//此图为无向图#define N 1100int indegree[N];int pre[N];int map[N][N];int find(int x) {if(x!=pre[x]) pre[x]=find(pre[x]);return pre[x];}int main() {int n,m,a,b,i,
2014-03-08 17:30:47 526
原创 欧拉回路知识
欧拉回路 通过图中每条边一次且仅一次,并且过每一顶点的回路。欧拉路径 通过图中每条边一次且仅一次,并且过每一顶点的通路。欧拉图 存在欧拉回路的图。半欧拉图 存在欧拉路径的图。无向图存在欧拉回路的充要条件: 连通且没有奇度顶点。无向图存在欧拉路径的充要条件: 连通且奇度顶点个数为2。有向
2014-03-08 17:14:47 651
原创 hdu 2545 并查集 树上战争
#include#include#define N 110000struct node { int father,count;}pre[N];int find(int x) {if(x==pre[x].father) {pre[x].count=0;return x;} int h=pre[x].father; pre
2014-03-08 17:01:09 531
原创 hdu 2594 kmp
#include#define N 51000void getkmp(int next[],char s[]) { int j=0,k=-1; next[0]=-1; while(s[j]!=0) { if(k==-1||s[j]==s[k]) { j++;k++; if(s[j]!=s[k])next[j]=k; else next[j]=n
2014-03-08 14:03:53 446
原创 hdu 1867 kmp匹配
#include#include#define N 100100void getnext(int next[],char s[]) { int k=-1,j=0;next[0]=-1;while(s[j]!=0) {if(k==-1||s[j]==s[k]) {j++;k++;if(s[j]!=s[k])next[j]=k;elsenext[j
2014-03-07 21:35:38 509
原创 hdu 2844 多重背包二进制优化
#include#define N 110000#includeint dp[N];int main() {int n,m,i,j,a[N],b[N],k,h;while(scanf("%d%d",&n,&m),n||m) {memset(dp,0,sizeof(dp)); for(i=1;iscanf("%d",&a[i]);for(i=1;
2014-03-07 20:33:48 490
原创 hdu 4006
#include#include#includeusing namespace std;struct node {int num;friend bool operatorreturn a.num>b.num;}};int main() {int count,n,k,i;char s[3];while(scanf("%d%d",&n,&k)!=EO
2014-03-04 11:29:09 468
原创 hdu 3062 2-sat
#include#include#define N 2100struct node {int u,v,next;}bian[N*N];int min(int a,int b) {return a>b?b:a;}int yong,dfn[N],low[N],ans[N],stac[N],top,index,num,head[N],visit[N];void a
2014-03-01 18:52:57 538
原创 hdu 2546 0-1背包
#include#include#define N 1100int dp[N],a[N];int main() {int n,m,i,j,max,k;while(scanf("%d",&n),n) {max=0;k=0;for(i=1;iscanf("%d",&a[i]);if(a[i]>max) {max=a[i];k=i;}}scan
2014-03-01 14:10:21 472
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人