随笔分类 -  TC/CF等各种比赛

摘要:进制构造 这里用了十进制 有点像串并联 每一位代表的数分开表示出来再把每一位的数并起来 比如892 就是800+90+2 800又可分为8*10*10。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 int w[1010][1010],s[20],en[20];11 int a[20];12 int main()13 {14 int k,i,j;15 cin>>k;16 int g = ... 阅读全文
posted @ 2014-02-09 19:00 _雨 阅读(269) 评论(0) 推荐(0)
摘要:休眠了2月了 要振作起来了!!。。。http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2155因为点比较少 最多更新三百次 标记某个节点时直接更新与之相连的点的最短距离 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define INF 0xfffffff 9 int w[310][310],f[310];10 int main()11 {12 int n,. 阅读全文
posted @ 2014-01-16 17:47 _雨 阅读(262) 评论(0) 推荐(0)
摘要:题不怎么难,按线段树的解法 就是延迟标记,更新 因为找错找了N久 记一篇吧向下更新时把+=写成了= 还做在了2W组的数据上 那个错找得真费劲。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 20001210 int n;11 #define LL long long12 LL s[N=r)31 {32 s[w]+=(r-l+1)*d;33 lz[w]+=d;34 ... 阅读全文
posted @ 2014-01-12 02:14 _雨 阅读(205) 评论(0) 推荐(0)
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2718模拟 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int w[25][25]; 7 int dis[4][2] = {1,0,0,-1,0,1,-1,0}; 8 int main() 9 { 10 int n,m,k,i,s1,s2,kk=0,d; 11 while(cin>>n>>m>>k) 12 { 13 阅读全文
posted @ 2013-12-01 19:03 _雨 阅读(440) 评论(0) 推荐(0)
摘要:出来冒个泡由于数比较大 开了map计数 然后边走边删边加 勉强可过 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 #define LL long long11 #define N 20001012 int a[N],b[N],ff[N],o[N],g,vis[N];13 mapf;14 mapq;15 mapqq;16 int main()17 {18 int i,kq=0;19 LL n,m,p;... 阅读全文
posted @ 2013-11-27 13:59 _雨 阅读(225) 评论(0) 推荐(0)
摘要:B判矩阵的时候 出了点错 根据点积判垂直 叉积判平行 面积不能为0 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 struct node 10 { 11 int x,y; 12 }p[10]; 13 int f[10]; 14 int find(node a,node b,node c,node d) 15 { 16 int flag = 0; 17 if(a.x-b.x==0||c.y-b.y... 阅读全文
posted @ 2013-11-10 20:07 _雨 阅读(241) 评论(0) 推荐(0)
摘要:CF的专业题解 :The problem was to find greatest d, such that ai ≥ d, ai mod d ≤ k holds for each i.Let m = min(ai), then d ≤ m. Let consider two cases:. In this case we will brute force answer from k + 1 to m. We can check, if number d is a correct answer in the following way:We have to check that ai mod. 阅读全文
posted @ 2013-11-06 15:10 _雨 阅读(211) 评论(0) 推荐(0)
摘要:刷了一页的WA 。。终于发现了 哪里错了 快速幂模板里一个变量t居然开得long ...虽然代码写的丑了点 但是是对的 那个该死的long 啊.. 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define mod 1000000007 9 #define LL __int6410 #define N 10001011 LL n,x,a[N],s,b[N];12 LL exp_mod(LL a,LL n,LL b)13 {14 long long ... 阅读全文
posted @ 2013-11-02 23:58 _雨 阅读(301) 评论(0) 推荐(0)
摘要:贡献了一列WA。。数学很神奇啊这个题的关键是怎么才能算尾0的个数 只能相乘 可以想一下所有一位数相乘 除0之外,只有2和5相乘才能得到0 当然那些本身带0的多位数 里面肯定含有多少尾0 就含有多少对2和5这样就知道了 就是求2和5 的对数最少的 一条路 DP就不用说了 递推注意有0的时候的计算 特殊处理一下 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 1010 9 #define INF 1e10 10 #define... 阅读全文
posted @ 2013-10-21 17:01 _雨 阅读(276) 评论(0) 推荐(0)
摘要:只有小写字母 那>=2600的直接找单字母串长度大于等于100的就可以了<2600 的dp找最长回文串 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 50010 9 char s[N];10 char pa[2610];11 int dp[2610][2610][2],g,n,o[30];12 void dfs(int ss,int i,int j,int k)13 {14 if(ss==0)15 return ;16 ... 阅读全文
posted @ 2013-10-20 21:44 _雨 阅读(275) 评论(0) 推荐(0)
摘要:这题刚开始理解错题意了 以为只能往右和下走这题挺好的 看题解看了N久啊二维的DP 第一维表示走到第几步 可以画一个正方形 以左上角斜着划线第i步走的点只能是第i条线上的点 而dp的第二维 就表示的第i步可以到达的点的状态另开一个a数组来表示 第i条线上每个字母的状态dp所代表的值就为a与b的差值 以这个来进行选择 进行记忆化确定下一步可以到达的字母的状态 是以当前可达的状态&下一步所要到达的字母的状态 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #d 阅读全文
posted @ 2013-10-20 12:55 _雨 阅读(230) 评论(0) 推荐(0)
摘要:短小精悍的代码dp[i][j] +=dp[k][j-1]*[i-k-1][j-1] i个结点 J层 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define LL __int64 8 LL dp[40][40]; 9 int main()10 {11 int i,j,k,n,d;12 scanf("%d%d",&n,&d);13 for(i = 0; i <= n ; i++)14 dp[0][i] = 1;15 for(i = 1; 阅读全文
posted @ 2013-10-19 20:39 _雨 阅读(201) 评论(0) 推荐(0)
摘要:数学so奇妙。。这题肯定会有一个循环节 就是最小公倍数对于公倍数内的相同的数的判断 就要借助最大公约数了 想想可以想明白 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 1000100 9 #define LL __int6410 LL o[N][27];11 char s1[N],s2[N];12 LL gcd(int a,int b)13 {14 return b==0?a:gcd(b,a%b);15 }16 int main(... 阅读全文
posted @ 2013-10-19 12:00 _雨 阅读(272) 评论(0) 推荐(0)
摘要:读错题意了。。线段树延迟标记白刷这么多线段树 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 300010 9 int s[N=r)17 {18 s[w] = p;19 return ;20 }21 if(s[w])22 {23 s[w>1;27 if(am)30 update(a,b,p,m+1,r,w>1;39 if(k= 1; i-... 阅读全文
posted @ 2013-10-16 08:43 _雨 阅读(281) 评论(0) 推荐(0)
摘要:A 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 int a[110]; 9 int main()10 {11 int i,j,n,u,v;12 int s1=0,s2=0,num=0;13 scanf("%d",&n);14 for(i = 1; i 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define... 阅读全文
posted @ 2013-10-11 15:39 _雨 阅读(219) 评论(0) 推荐(0)
摘要:这题纠结好久了 看一神代码 想了N久才明白它的意思dp[i][j]表示放了i个数后和为J的方式有多少种而在算阶层总数的时候 会重一部分 而重的那一部分恰好为小于等于P的长度 所以就直接省了乘长度这一部分 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL long long 9 int a[55];10 LL dp[55][55];11 double pp[55];12 int main()13 {14 int i,j,k,n,p;1... 阅读全文
posted @ 2013-10-10 18:13 _雨 阅读(263) 评论(0) 推荐(0)
摘要:这图最多3色就可以 搜2就行了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 int vis[55][55],c[55][55],f[10],mm;10 int dis[6][2] = {{1,0},{0,1},{-1,0},{0,-1},{-1,1},{1,-1}},n;11 int flag,m;12 int judge(int x,int y)13 {14 if(x=n||y>=n)15 return 0;16 ... 阅读全文
posted @ 2013-10-07 15:06 _雨 阅读(194) 评论(0) 推荐(0)
摘要:Problem Statement The pony Rainbow Dash wants to choose her pet. There are N animals who want to be her pet. Rainbow Dash numbered them 0 through N-1.To help her make the decision, Rainbow Dash decided to organize a relay race for the animals. The race track is already known, and... 阅读全文
posted @ 2013-10-06 14:13 _雨 阅读(385) 评论(0) 推荐(0)
摘要:挺好的dp 因为有一点限制 必须任意去除一个数 总和就会小于另一个总和 换句话来说就是去除最小的满足 那么就都满足所以是限制最小值的背包 刚开始从小到大定住最小值来背 TLE了一组数据 后来发现如果从大到小的话 就不用多加一重for了 前面算的已经记录下来 直接用就OK了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL long long 9 #define N 300001010 LL dp[N],sum[N];11 int a[5... 阅读全文
posted @ 2013-10-05 18:15 _雨 阅读(300) 评论(2) 推荐(0)
摘要:写了一记忆化 TLE了 把double换成long long就过了 double 这么耗时间啊 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 4010 9 #define INF 0xfffffff10 #define LL long long11 double a[N];12 LL dp[N][N],b[N][2];13 int n;14 LL dfs(int i,int r1,int r2,LL ss)15 {16 if(i>.. 阅读全文
posted @ 2013-10-05 13:25 _雨 阅读(216) 评论(0) 推荐(0)