04 2019 档案
摘要:http://codeforces.com/gym/100623/attachments H题已经给出来的,包括后来添加的,都累加得到ans,那么从1~ans都是可以凑出来的,如果ans<a[now]-1,那么就添加一个ans+1,然后继续操作。 1 #include<iostream> 2 #in
阅读全文
摘要:http://codeforces.com/gym/100623/attachments E题第一个优化它虽然是镜像对称,但它毕竟是一一对称的,所以可以匹配串和模式串都从头到尾颠倒一下第二个优化,与次数无关,所以排个序就完事了 1 #include<iostream> 2 #include<cstd
阅读全文
摘要:2016年省赛 G Triple Nimnim游戏,要求开始局面为先手必败,也就是异或和为0。如果n为奇数,二进制下最后一位只有两种可能1,1,1和1,0,0,显然异或和为1,所以方案数为0如果n为偶数,举个例子,14,二进制为1110,我们按位来拆1110==1000+100+101000=100
阅读全文
摘要:2013年山东省赛F题 Mountain Subsequences先说n^2做法,从第1个,(假设当前是第i个)到第i-1个位置上哪些比第i位的小,那也就意味着a[i]可以接在它后面,f1[i]表示从第一个开始,以a[i]为结尾的不同递增序列的个数,要加上1,算上本身。正反各跑一遍,答案加一下(f1
阅读全文
摘要:2013年省赛H题你不能每次都快速幂算A^x,优化就是预处理,把10^9预处理成10^5和10^4。想法真的是非常巧妙啊N=100000构造两个数组,f1[N],间隔为Af2[1e4]间隔为A^N,中间用f1来填补f[x]=f1[x%N]*f2[x/N]%P; 1 #include<iostream
阅读全文
摘要:2013年省赛I题判断单向联通,用bfs剪枝:从小到大跑,如果遇到之前跑过的点(也就是编号小于当前点的点),就o(n)传递关系。 bfs 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #include<algorithm> 5
阅读全文
摘要:HEX SDUT 3896 17年山东省赛D题这个题是从矩形的左下角走到右上角的方案数的变形题,看来我对以前做过的题理解还不是太深,或者是忘了。对于这种题目,直接分析它的性质就完事了。从(1,1)走到(a,b)向左走的步数和向右走的步数是确定的,向下是代表向左向右各走了一步。细节:利用对称性,线性推
阅读全文
摘要:博弈论基础理解我理解了一段时间之后顿悟,主要是几个误区,也许在别人看来是非常显然的事必胜状态指先手必胜,必败状态指先手必败如果把整个博弈过程看成树,每个棋局状态都看成一个节点,后继状态为当前节点的儿子,而不是子树的任意节点那么怎么判断当前状态是必胜还是必败呢?1. 末状态是必败2. 一个状态为必胜状
阅读全文
摘要:1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #include<algorithm> 5 #include<cmath> 6 #include<ctime> 7 #include<cstring> 8 #define inf
阅读全文
摘要:I - Infinite Improbability Drivehttp://codeforces.com/gym/241750/problem/I不断构造,先填n-1个0,然后能放1就放1,最后这个序列的长度就是(1<<n)+n-1,也就是每添加1位就要匹配出来一个。 1 #include<ios
阅读全文
摘要:E - Elevatorhttp://codeforces.com/gym/241680/problem/E同余最短路,从0~a-1中每一个i向(i+b)%a连一条权值为b的边,向(i+c)%a连一条权值为c的边,然后跑spfa最短路,此时d[i]表示达到x%a花费的最小的距离,这里放的只有b,c,
阅读全文
摘要:Problem J. Journey with Pigshttp://codeforces.com/gym/241680/problem/J考察排序不等式算出来单位重量在每个村庄的收益,然后生序排列猪的重量也生序排列此时价值最大 1 #include<iostream> 2 #include<cst
阅读全文
摘要:排序不等式给定3组数a[1]~a[n],b[1]~b[n],c[1]~c[n]其中c[1]~c[n]是b[1]~b[n]的乱序排列a[1]*b[n]+a[2]*b[n-1]+...<=a[1]*c[1]+a[2]*c[2]+...<=a[1]*b[1]+a[2]*b[2]+...反序和<=乱序和<=
阅读全文
摘要:http://codeforces.com/gym/241680/problem/B比赛的时候考虑的是,它们3个尽可能接近,然后好麻烦,不如暴力枚举,这里不需要质因数分解,而是两重循环枚举所有因数,第3个因数也就随之确定 1 #include<iostream> 2 #include<cstdio>
阅读全文