上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 71 下一页
摘要: 链接这个东东是新知识 let's 从头学起吧这篇文库讲的不错 至少把各种概念学了一遍然后再看此题 共有两种类型的置换 一种是旋转之后相同算一种 一种是翻转之后相同算一种对于旋转 共有N次置换 转1下到转N下 对于每一次的循环节 各大牛给出了结论 为gcd(n,i) 这个我也不会证 姑且记住吧对于翻转 这个从图中可以看出来 找对称轴 分2种情况if n%2==0也分两种情况 若以两个相对的珠子为对称轴 那循环节为(n-2)/2+2若以 其它不含珠子的线为对称轴 循环节为n/2 个置换n/2次else (n-1)/2+1然后 就可以按ploya定理做了 文库有讲 就不说ploya是什么了 阅读全文
posted @ 2013-09-19 18:25 _雨 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 链接对于组合数学是一点也不了解讲解重要一点 要知道一个循环里最少的交换次数是m-1次 、 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 10010 8 #define INF 0xfffffff 9 int a[N],b[N],po[N*10],vis[N*10];10 int main()11 {12 int i,n;13 while(scanf("%d",&n)!=EOF)14 {15 memset(vis,0,si... 阅读全文
posted @ 2013-09-19 09:45 _雨 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 地址就贴这一个吧 都在附近当时回来也没做做 一伤心了 二是当时实在太弱了先补两道DPE题的区间DPdp[i][j] 截止到i位置以字母j为结束的上升序列 正序 逆序各来一遍 再循环一遍保存一下小于等于J结束的有多少 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define LL long long 8 #define N 100010 9 #define mod 2012 10 LL dp1[N][30]; 11 LL ... 阅读全文
posted @ 2013-09-17 23:14 _雨 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 链接这题意好难懂 看得迷迷糊糊 想的也迷迷糊糊 后来睡了会突然想到了。。不就是类似以前的矩阵操作从右下角记忆化 大的由小的推来dp[i][j] = max(dp[i-1][j]+s1,dp[i][j-1]+s2) s1 = a[i][g]+..a[i][j] s2 = b[g][j]+..b[i][j] 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int dp[550][550]; 8 int n,m; 9 int a[550][550];10 int b[550][550];. 阅读全文
posted @ 2013-09-17 18:39 _雨 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 链接状态转移好想 不过有坑 大家都犯的错误 我也会犯 很正常就是锤子可以移到n*n以外 要命的是我只加了5 以为最多不会超过5 WA了N久 才想到 上下两方向都可以到5 所以最多加10以时间和坐标进行DP 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 1010 9 #define M 3210 struct node11 {12 int x[N],y[N];13 }f[M][M];14 int o[12][M][M];15 int... 阅读全文
posted @ 2013-09-17 14:59 _雨 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 链接确实是破题 按复杂度估计怎么着也不能按坐标D 啊网上的代码交上去还TLE 无语了 多次TLE之后终于看到一次WA。。好高兴以横坐标进行DP dp[j] = min(dp[j],dp[2*x[i]-j]+1) 这个2*x[i]-j其实是 j+2*(x[i]-j]) 由当前坐标可以由没跳这个个建筑物i之前的坐标推来限制条件为 (j-x[i])*(j-x[i])+(y[i]-y[1])*(y[i]-y[1])>y[i]*y[i]; 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namesp 阅读全文
posted @ 2013-09-16 20:56 _雨 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 链接裸线段树 这题时间卡的挺棒 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 #define N 1000010 9 #define INF 0xfffffff10 int s[N>1;26 build(l,m,w=r)33 {34 return lm[w];35 }36 int m = (l+r)>>1,ans = INF;37 if(am)40 ans = min(ans,query1(a,b,m+1,r,... 阅读全文
posted @ 2013-09-16 13:03 _雨 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 链接哎。。比赛中一下想到了公共子序 之后思维就被局限了 一直在这附近徘徊 想着怎么优化 怎么预处理。。观看了众多神牛的代码 。。以前觉得自己能写出个记忆化的最长回文长度 还挺高兴的。。。现在觉得好弱因为它是两边一起跑 也就是可以是两段回文子序 所以。。只需要求下1-i i+1-n的最长回文串就可以了 这个是可以在之前求总的时候保留下来的 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int dp[1010][1010]; 8 int a[1010]; 9 int main()10. 阅读全文
posted @ 2013-09-16 11:45 _雨 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 链接预处理出只有四个1的情况存入数组中 然后状压下 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 1050000 8 int dp[2][N]; 9 int q[2][N];10 int pt[N];11 bool f[N];12 struct node13 {14 int x,y;15 }pp[25];16 bool cmp(node a,node b)17 {18 if(a.x==b.x)19 return a.y<b.y;20 ... 阅读全文
posted @ 2013-09-15 22:26 _雨 阅读(498) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4734各种不细心啊 居然算的所有和最大值会小于1024.。。第二次做数位DP 不是太熟 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL __int64 9 int dp[15][10500],dp2[15][10500];10 int a,b;11 int pp[20];12 void init()13 {14 int i,j,g;15 ... 阅读全文
posted @ 2013-09-14 20:23 _雨 阅读(882) 评论(0) 推荐(0) 编辑
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 71 下一页