
Codeforces
文章平均质量分 56
yuukilp
Full Of Curiosity
展开
-
Coder-Strike 2014 - Qualification Round B. Multi-core Processor
B. Multi-core Processor#include//屏蔽第i行,(第i行有m个数)void del(int (*a)[105],int i,int m){ int t; for(t=1;t<=m;t++) a[i][t]=0;}int a[105][105],record[105]={0},lock_cell[105]={0},ans原创 2014-04-16 12:23:00 · 814 阅读 · 0 评论 -
Codeforces Round #331 (Div. 2) C. Wilbur and Points
题意:给你一些点,把他们排好序,要求就是对于任意点(x,y)(x,y),点(x1,y1)(x_1 ,y_1) 必须排在后面(x≤x1,y≤y1x \le x_1,y \le y_1),而且每个点的y−xy-x 满足给定的序列!思路:这题做法很多啊,貌似看到有用线段树做的,其实注意到题目给的性质根本就不需要啦,首先根据给定的序列填入对应的点(w[i]相同的话,小的排在前面),中途加一些判断,假设这一部原创 2015-11-17 09:44:21 · 335 阅读 · 0 评论 -
Codeforces Round #328 (Div. 2) C ,D
C - The Big Race思路 开始读半天都没读懂,后来勇敢猜测一发结论,其实就是当跑道长度在k∗lcm(b,w)k*lcm(b,w) 和 k∗lcm(b,w)+min(b,w)k*lcm(b,w) + min(b,w) 之间时会出现tie的情况,然后考虑下边界情况就行了,这题的WA点相当多,压根儿没看到说当 p==0p==0 的时候,输出 0/10/1 。代码(JAVA版)import原创 2015-11-01 11:11:51 · 500 阅读 · 0 评论 -
Codeforces Round #333 (Div. 2) B C D
B. Approximating a Constant Range题意: 给定n个数,满足任意相邻的元素之间的差值不超过1,求最长区间使得区间内最大值和最小值的差值不超过1?思路: 要利用题目给出的性质,|a[i+1]−a[i]|≤1|a[i+1] - a[i]|\le 1,先求出b[i]=|a[i+1]−a[i]|b[i] = |a[i+1] - a[i]| ,那么如果去掉bb数组中的0原创 2015-11-25 21:42:44 · 552 阅读 · 0 评论 -
Codeforces Round #334 (Div. 2) D. Moodular Arithmetic
题意: 求有多少种映射关系满足等式: 思路: 假设K=0K= 0,K=1 K= 1 情况下,答案比较容易得到。 对于 K≥2K \ge 2 情况下。具体解释:here 下面说明几点疑惑: 为什么选用 x2=x1∗px_2 = x_1 * p % modmod,因为这样的额话,满足迭代条件,所以就能找到等式关系。 为什么mark过的数就不用再去原创 2015-12-11 23:12:51 · 433 阅读 · 0 评论 -
Codeforces Round #321 (Div. 2) E - Kefa and Watch(hash + 线段树)
题意: 题意大概是给你一串长度为n的数字串,两个操作,1 l r c 将 下标为l 到 r 的数字全部改为 c 2 l r c 询问 下标为l 到 r 的数字 循环节是否为 c n 的范围是10W, 第二个c的范围是10思路: 做法就是字符串hash啦,因为字符串hash类似于前缀和的处理,也就是说:比如区间(v1)[L,mid(v1)[L,mid和区间(v2)mid+1(v原创 2015-09-23 23:28:04 · 579 阅读 · 0 评论 -
codeforces gym 100342F Move to Front
题意: 给一个1-N的排列,给M个询问,每次问编号为x的数在数组的第几个位置,同时把编号为x的这个数提到数组的最前面。思路: 首先我们得知道编号为x的数前面有多少个数,这个时候就是可以用树状数组来优化了,我们记录开个数组mp记录一下编号为x的数在树状数组中的位置是多少,同时每次询问的时候直接得到它在树状数组中的位置,然后又直接求和就是可以得到答案了啊,然后就是去维护一个把数提上前的操作了,原创 2015-08-09 22:40:25 · 581 阅读 · 0 评论 -
codeforces Gym 100431G Persistent Queue
啥都别说了!真心好题!在线在树上找LCA的关键地方就在于这个,一定要好好理解它!题意: 给一些操作,包括在末尾加一个数或者是删除最前面的一个数,而每次操作是先复制第v个操作留下的序列,再进行加数或删除数的操作,最后得到一个新的序列。问每次删除的数是多少!思路: 比较容易想到的是:把这些操作看做树上的点,对每一个操作都去维护一下它的头节点和尾节点。 第i个操作: 1...v..c1..原创 2015-08-17 23:44:37 · 553 阅读 · 0 评论 -
Codeforces Round #316 (Div. 2) D. Tree Requests
Codeforces Round #316 (Div. 2) D. Tree Requests题意: 给一棵树,每个节点上都唯一对应一个单词,给M个询问,问节点u的子树中,深度为h的节点上所有的单词以任意次序组合起来能否构成回文串?思路: 首先呢,我们必须得处理出内节点所在的深度,而且得知道对应深度下有哪些节点存于vector数组H[d]中,但是问题就是询问仅涉及到节点为u的子树的哪些节点原创 2015-08-16 15:07:34 · 627 阅读 · 0 评论 -
Codeforces Round #337 (Div. 2) D.Vika and Segments
题意: 给定 NN 条垂直于坐标轴的线段,线段的宽度均为 11,求最后这些线段被覆盖的面积?思路: 很裸的矩形面积并,扫描线,套版为上,绝杀了! 主要是贴个版。代码:#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <iostream>#include <cm原创 2015-12-28 11:05:46 · 683 阅读 · 0 评论 -
codeforces 86D. Powerful array(分块)
题意: 给定一个数列:A1,A2,⋯AnA1, A2,\cdots An,定义KsK_s为区间(l,r)(l,r)中ss出现的次数。 tt个查询,每个查询l,rl,r,对区间内所有a[i]a[i],求∑(K2s⋅a[i])\sum(K_s^2\cdot a[i])思路: 考虑到时间消耗来自于L,RL ,R指针的移动,如果没有分块的话,直接根据左端点小的排在前面,左端点相同的按右端点小原创 2015-09-24 11:52:16 · 988 阅读 · 0 评论 -
CF EDU #7
E - Ants in Leaves题意: 给一棵树,每个叶子节点都有一个蚂蚁,每一秒钟后,蚂蚁可以爬向父亲节点,但是同一时刻任意节点不允许有两只蚂蚁(根节点1除外)解释: 对于处于同一高度的叶子节点,会需要额外的时间消耗,所以只需要考虑根节点的儿子,对于这样的节点 uu,找出uu 的子树中哪些叶子节点的高度,然后去处理一些排队问题就行了F - The Sum of the k-th P原创 2016-02-15 17:47:56 · 392 阅读 · 0 评论 -
Codeforces Round #346 (Div. 2) D. Bicycle Race(点在多边形内部)
题意: 判断多少个转点会有危险?思路: 这个题有一万种做法,因为数据较小! 1. O(1)O(1) 公式 (n−4)/2(n - 4) / 2 2. O(n)O(n) 扫一遍点,判断叉积是否大于零? 3. O(n2)O(n^2) 利用计算几何的知识,判断某个点是否在多边形内部,下面说一下这种解法: 判断一个点是否在多边形内部,具体有三种方法: - 面积法原创 2016-03-31 13:27:55 · 398 阅读 · 0 评论 -
CodeForces 653D Delivery Bears(网络流)
题意: 给定一个有向带权图,现在有x个人,每个人手上的物品重量都一样,每个人只能走一条简单路,问从 11 到 nn 的最大流量值为?思路: 首先,直接去跑最大流,肯定是不行的,因为在最大流的过程中,可能会出现从某个节点流出的流量分流,这样就不能保证 每个人的 流量值是一份不会经过分流的流量。 所以需要变换一下,二分每个人的初始流量值 vv,然后重新建图,图中边权变为 w/vw/v原创 2016-04-01 09:24:48 · 916 阅读 · 0 评论 -
CF EDU #8 D - Magic Number
题意: 现在定义d-magic数字,就是一个没有前导0的数,d恰好仅出现在这个数的偶数位置。 然后现在给你m,d,a,b。问你在[a,b]内,是m的倍数,且是d-magic的数字有多少个解释: 数位DP (记忆化瞎比搜) 定义 dp[pos][Mod][Flag] 为 当前处于第pos位,余数为Mod,所选的上一位是否到达上界(这会影响下一位数的选择范围) 然后转移一波原创 2016-02-28 21:52:15 · 337 阅读 · 0 评论 -
Codeforces Round #329 (Div. 2) B, D
B. Anton and Lines思路: 画个图就明白了,在区间[x1,x2][x_1,x_2] 之间如果两条线段有交点,那么必定有下面的关系,所以我们可以求出所有直线上横坐标为x1x_1 和 x2x_2 的点的纵坐标记为L,RL,R,然后排一下序最后查找是否存在LL 教大但是RR 较小就OK了!怎么做呢?直接扫一遍加判断就好了。 另:注意爆long long的问题! 代码:原创 2015-11-05 13:10:39 · 353 阅读 · 0 评论 -
Codeforces Round #297 (Div. 2) E - Anya and Cubes
题解#include using namespace std;typedef long long LL;int N, K;LL S;int a[26];LL A[26];map sum[26];void dfs(int p, int k, LL s){ if(s > S || k > K) return; if(p == N / 2) { sum[k][s] ++;原创 2015-03-27 18:35:07 · 464 阅读 · 0 评论 -
Codeforces Round #294 (Div. 2) D题:A and B and Interesting Substrings
read more 代码: #include#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;typedef unsigned long long ULL;const int N=5+1e5;LL val[26原创 2015-03-06 17:51:34 · 507 阅读 · 0 评论 -
Codeforces Round #241 (Div. 2) A题
#include#includeconst int INF=1000000009;int n,i,lowmax=-INF,higmin=INF;int main(){ scanf("%d",&n); for(i=1;i<=n;i++) { char sign[2],ch; int num,k;原创 2014-04-16 12:25:18 · 680 阅读 · 0 评论 -
Coder-Strike 2014 - Qualification Round A. Password Check
A. Password Checktime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou have probably registered on Internet sites many原创 2014-04-15 18:28:18 · 909 阅读 · 0 评论 -
code strike round 1 C
C. Pattern自己编的复杂了点,翻译 2014-04-19 11:26:35 · 712 阅读 · 0 评论 -
code strike round 1 B
B. Network Configuration用到了快排,自己编原创 2014-04-19 11:22:02 · 794 阅读 · 0 评论 -
code strike round 1 A
A. Poster此题很水,原创 2014-04-19 11:17:51 · 785 阅读 · 0 评论 -
codeforce #247 B(div2)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int a[5][5];int p[6]={0,1,2原创 2014-05-22 13:24:51 · 785 阅读 · 0 评论 -
Codeforces Round #261 (Div. 2) D题
感觉自己的做法比较奇葩。原创 2014-08-20 00:08:27 · 609 阅读 · 0 评论 -
Codeforces #264 (Div. 2) D. Gargari and Permutations(DAG求最长路)
思路2:如果一个数字i在每个串的位置都在j前面,那么i到j就有一条有向边,那么题目就转换为DAG求最长。代码:原创 2014-09-19 10:55:44 · 543 阅读 · 0 评论 -
codeforce Bayan 2015 Contest Warm Up D CGCDSSQ
题意:原创 2014-10-08 12:27:09 · 644 阅读 · 0 评论 -
Codeforces Round #285 (Div. 2) C - Misha and Forest
思路:类似一个拓扑排序的题,根据 对度数为1的点,它所连的边的编号即为异或和这一 规律,直接进行拓扑排序即可。 每次对得到的节点度数减一,并且异或上他所连的节点。 代码:#include#include#include#include#include#includeusing namespace std;typedef long long LL;vector原创 2015-01-12 23:22:51 · 742 阅读 · 0 评论 -
Codeforces Round #290 (Div. 2) B题 C题
B题: 题意:给定N*M的矩阵,判断是否有环,要求环上的每一个格子颜色相同,且至少有4个格子。 思路:转化为无向图中是否有环的问题。如果对于一个连通图,没有环的话,那么则形成一棵树,设树上顶点数为V, 总的边数为sum(每个点的度数之和的一半),则v-sum=1,可由此判断连通图是否有环。对于非连通图,dfs就可以解决了。 代码:#include#inc原创 2015-02-03 12:00:39 · 434 阅读 · 0 评论 -
Codeforces Round #296 (Div. 2) B C题
题解: view#include#include#include#include#include#includeusing namespace std;const int maxn=200005;vector pos1[30],pos2[30];char s1[maxn],s2[maxn];map, int> mp;int main(){ //fr原创 2015-03-19 10:10:03 · 430 阅读 · 0 评论 -
codeforce round #295(div2) C题
详解: view 代码:#include#include#includeusing namespace std;char ss[100005];const int MOD=7+1e9;int cal(char ch){if(ch=='A') return 0;else if(ch=='C') return 1;else if(ch=='G') retu原创 2015-03-05 12:58:10 · 455 阅读 · 0 评论 -
Codefest 17 C. Helga Hufflepuff's Cup(树形DP)
题意: 在一棵树上进行涂色,总共有 mm 种颜色(编号1−m1 - m),其中编号为 kk 的颜色为特殊颜色,如果树上一个节点染上了特殊颜色,则其邻居节点的颜色编号都应该<k < k,求在这棵树上染色总共有多少种方法,染上特殊颜色的节点的数目不超过 xx 个。 n≤105, m≤109, x≤10n \le 10^5,\ m \le 10^9,\ x \le 10思路: 难点:状态原创 2017-09-25 22:55:50 · 353 阅读 · 0 评论