雕刻时光

just do it……nothing impossible
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 50 下一页

2011年7月27日

摘要: 暴力也可过,不过太没意思先排序:如41 3 5 8(3-1)*(1*3)+(5-3)*(2*2)+(8-5)*(3*1)规律发现了吧。。。View Code #include<stdio.h>#include<iostream>#include<algorithm>using namespace std;int a[10009];int main(){ int n; while(scanf("%d",&n)!=EOF) { int i,j; for(i=0;i<n;i++) { scanf("%d",&a 阅读全文

posted @ 2011-07-27 17:07 huhuuu 阅读(313) 评论(0) 推荐(0) 编辑

摘要: 比较好的贪心题也学会了优先队列吧思路:现对开始时间升序排序(再一次领教到了排序降维的意义!!!)优先队列里放add(第几次stall),rr(结束时间)在把第一个放到优先队列,第二个数与优先队列顶部进行比较若第二个数结束时间>优先队列顶部结束时间,则更新该顶部时间否则第二个数加到该优先队列里View Code #include<iostream>#include<cstdio>#include<algorithm>#include<queue>#include<string.h>using namespace std;int r 阅读全文

posted @ 2011-07-27 15:43 huhuuu 阅读(294) 评论(0) 推荐(0) 编辑

摘要: 解题的思想用到了 类似最长递增子序的方法,先按起始时间升序排序,不断更新,到某点(包括改点)最大值排序的目的:可以把看似二维的区间降到一维!!!!O(n*n)dp[i]=max(dp[i],dp[j]+node[i].v);dp[i]放着的是包括i点,最大的价值View Code #include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>using namespace std;struct data{ int b,e; int v;}node[1009];int 阅读全文

posted @ 2011-07-27 10:09 huhuuu 阅读(357) 评论(0) 推荐(0) 编辑

2011年7月26日

摘要: 想下递归过程注意位运算优先级小,加括号View Code #include<stdio.h>int k;int dfs(int left){ if((left-k)<=1||((left-k)%2)==1) { return 1; } return dfs((left-k)>>1)+dfs(left-((left-k)>>1));}int main(){ int n; while(scanf("%d%d",&n,&k)!=EOF) { printf("%d\n",dfs(n)); }} 阅读全文

posted @ 2011-07-26 16:06 huhuuu 阅读(261) 评论(0) 推荐(0) 编辑

摘要: N*NView CodeNlog(N)觉得这个更接近于贪心的思想二分查找,可以更新则不断把a[]中的子数更新小,否则增加a[]View Code #include<stdio.h>int s[5009];int a[5009];int n;int lis(){ int l,r,mid,len=1; a[1]=s[1]; for(int i=2;i<=n;i++) { l=1,r=len; while(l<=r) { mid=(l+r)>>1; if(a[mid]<s[i])l=mid+1; else r=mid-1; } a[l]=s[i]; if(l 阅读全文

posted @ 2011-07-26 09:42 huhuuu 阅读(367) 评论(0) 推荐(0) 编辑

2011年7月25日

摘要: 构造矩阵,题比较水不解释了View Code #include<stdio.h>#include<string.h>int mod;//矩阵中间数求模int n;int a[19];struct data{ int map[11][11];};data matrix(data a,data b)//矩阵乘法{ int i,j,k; data re; for(i=0;i<n;i++) { for(j=0;j<n;j++) { int all=0; for(k=0;k<n;k++) ... 阅读全文

posted @ 2011-07-25 20:24 huhuuu 阅读(301) 评论(0) 推荐(0) 编辑

摘要: 结构体里尽量不要放int64不然容易爆内存View Code #include<stdio.h>#include<string.h>int mod;int n;struct data{ int map[30][30];};data res;data add(data a,data b)//矩阵加{ data re; int i,j; for(i=0;i<n;i++) { for(j=0;j<n;j++) { re.map[i][j]=(a.map[i][j]+b.map[i][j])%mod; } ... 阅读全文

posted @ 2011-07-25 16:56 huhuuu 阅读(222) 评论(0) 推荐(0) 编辑

摘要: 矩阵A^1+A^2+A^3...A^6=(A^2+ret)*(A^1+A^2+A^3);=(A^2+ret)*(A*(ret+A)+A^3);如果是A^1+A^3+A^5...=A*(ret+A^2+A^4..)即把A^2+A^4...看成A^k+A^2k...View Code #include<stdio.h>#include<string.h>__int64 mod;__int64 n;struct data{ __int64 map[3][3];};data res;data add(data a,data b)//矩阵加{ data re; int i,j; 阅读全文

posted @ 2011-07-25 16:11 huhuuu 阅读(166) 评论(0) 推荐(0) 编辑

摘要: View Code #include<stdio.h>#include<string.h>constint mod=9973;//矩阵中间数求模int n;struct data{ int map[19][19];};data matrix(data a,data b)//矩阵乘法{ int i,j,k; data re; for(i=0;i<n;i++) { for(j=0;j<n;j++) { int all=0; for(k=0;k<n;k++) { ... 阅读全文

posted @ 2011-07-25 10:35 huhuuu 阅读(504) 评论(0) 推荐(0) 编辑

摘要: 裸的矩阵乘法注意点:步数为0时,A,B点相同时路有1条步数为0时,A,B点不相同时路有条0条View Code #include<stdio.h>#include<string.h>struct data{ int map[29][29];}mat[29];int main(){ int n,m; while(scanf("%d%d",&n,&m),n||m) { int i,j; memset(mat,0,sizeof(mat)); for(i=0;i<n;i++) { for(j=0;j<... 阅读全文

posted @ 2011-07-25 09:16 huhuuu 阅读(462) 评论(0) 推荐(1) 编辑

上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 50 下一页