随笔分类 - codeforce
摘要:1 // trie树 Codeforces Round #367 D Vasiliy's Multiset 2 // 题意:给一个集合,初始有0,+表示添加元素,-去除元素,?询问集合里面与x异或最大的值 3 // 思路:思路很好想,建立trie树,再贪心当前位是1则选0,0则选1 4 5 6 #include 7 using namespace std; 8 #defin...
阅读全文
摘要:1 // 十字链表 Codeforces Round #367 E Working routine 2 // 题意:给你一个矩阵,q次询问,每次交换两个子矩阵,问最后的矩阵 3 // 思路:暴力肯定不行。我们可以每个元素建立十字链表,记录右边和下边的元素,和每个元素的下标(从0开始),每次询问只需要交换四条边的指向即可。 4 // 本题要建立(n+1)*(m+1)的矩阵 5 6 #...
阅读全文
摘要:1 codeforces 704B - Ant Man 贪心 2 题意:n个点,每个点有5个值,每次从一个点跳到另一个点,向左跳:abs(b.x-a.x)+a.ll+b.rr 3 向右跳:abs(b.x-a.x)+a.lr+b.rl,遍历完所有的点,问你最后的花费是多少 4 思路:每次选一个点的时候,在当前确定的每个点比较一下,选最短的距离。 5 为什么可以贪心?应为答案唯一,那么路径...
阅读全文
摘要:http://codeforces.com/contest/702 题意:n个村庄,m个机站,问机站最短半径覆盖完所有村庄 思路:直接二分答案 二分太弱,调了半天。。。。。
阅读全文
摘要:http://codeforces.com/contest/702 题意:人到邮局去,距离d,汽车在出故障前能跑k,汽车1公里耗时a,人每公里耗时b,修理汽车时间t,问到达终点最短时间 思路:计算车和人的平均速度,谁快用谁,最后特判<=k的距离
阅读全文
摘要:http://codeforces.com/contest/702 题意:n个点,n条边,每个点出边只有一条,问从每个点出发经过k条边的边权和,以及边权最小值 思路: f[i][j] 第i个点出发,经过2^j条边后的相连点 其余类似 二进制巧妙解决问题应用太广了
阅读全文
摘要:http://codeforces.com/contest/701 A - Cards 水 1 // #pragma comment(linker, "/STACK:102c000000,102c000000") 2 #include <iostream> 3 #include <cstdio> 4
阅读全文
摘要:题意: n个数,长度为k的缓存,每次询问,每个数以pi的概率被选,如果不在缓存区则加入,如果缓存区满了,则第一个进缓存的出来,问10^100次询问以后每个数在缓存的概率 思路: 状压DP,看了hzwer的代码 f[x]表示当前状态为x的概率 枚举不在缓存区的数:f[t]+=f[x]*(p[i]/to
阅读全文
摘要:http://codeforces.com/contest/699 ALaunch of Collider 题意:n个球,每个球向左或右,速度都为1米每秒,问第一次碰撞的时间,否则输出-1 贪心最短时间一定在RL中,R右边一定有L,L左边一定有R 1 // #pragma comment(linke
阅读全文
摘要:A - Pineapple Incident 1 #pragma comment(linker, "/STACK:102c000000,102c000000") 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 #inc
阅读全文
摘要:A - Fashion in Berland 水 1 // #pragma comment(linker, "/STACK:102c000000,102c000000") 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5
阅读全文
摘要:A 脑筋急转弯 1 // #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 #include <sstrea
阅读全文
摘要:A http://codeforces.com/contest/685/standings 题意:给你n和m,找出(a,b)的对数,其中a满足要求:0<=a<n,a的7进制的位数和n-1的7进制的位数相同,b满足要求:0<=b<m,b的7进制的位数和m-1的7进制的位数相同,且a和b的7进制下的位上
阅读全文
摘要:A 弯腰 B 处理器一秒能处理k个东西,缓冲区最多不能超过h个,问几秒处理完 模拟,注意h很大,k很小的情况!!所以必须用除法避免超时 C 统计每个字符对应的数字有几个0,答案就是pow(3,n)。二进制是六位
阅读全文
摘要:B - Pyramid of Glasses n层杯子,问k分钟能流满多少个杯子?和到香槟一样的过程? 思路:应为水的流速为每分钟一立方体(YY),可以做个转化,把最上层的杯子最原始的容积看成K,每个杯子的满的状态为体积为1,那么只要判断所有杯子体积是否大于1就可以。 C - Vasya and S
阅读全文
摘要:思路:从后往前一位一位的模拟,每次判断一下当前枚举的数是否之间枚举过了。或者当前枚举数过小,小于1989. 1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<iostream> 5 #include<queue
阅读全文
摘要:这种题代码都写残。。。。 思路就是先把每个数都记为1,统计正负数的和sum,如果sum大于n,则负数和q减1,加的时候类似。注意限制条件 比较水的题。。。。 1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<i
阅读全文
摘要:水题。。[a,b]区间数的最大公约数。 a==b输出a 否则输出1 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<queue> 5 #include<stack> 6 #include<cmath> 7
阅读全文
摘要:题意:询问多少个矩形。 统计横纵坐标差,放进vector中 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<queue> 5 #include<stack> 6 #include<bits/stdc++.h
阅读全文
摘要:维护一个左右区间指针就可以。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<queue> 5 #include<stack> 6 using namespace std; 7 int main(){ 8
阅读全文