codeforces
文章平均质量分 62
obsolescence
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #202 (Div. 2)
A Cinema Line题意:思路:/************************************************************************* File Name: A.cpp ID: obsoles1 PROG: LANG: C++ Mail: 38409931原创 2016-07-14 16:16:10 · 284 阅读 · 0 评论 -
Gym 100803F There is No Alternative(最小生成树)
Gym 100803F There is No Alternative (题目链接)题意:求有几条边必然在最小生成树上,并求边权和。思路:必然在最小生成树上的边在每棵最小生成树上都会出现,所以我们只要先Kruskal一次,标记出最小生成树上的边,然后判断去掉这n-1条边里的一条Kruskal出来的值是否与之前相等即可判断当前边是否必然。时间复杂度为O(nm),n为点数,原创 2016-08-02 23:55:45 · 531 阅读 · 0 评论 -
Intel Code Challenge Final Round D Dense Subsequence(线段树)
传送门:Dense Subsequence题意:给定一个数k和一个字符串s,从s中选取一些字符形成新串,要求每k个连续字符至少要选1个,输出字典序最小的新串,aabb>aaabb,aabb>aab。思路:遍历一遍,如果当前k个中没有选过,就把当前k个中的最小的选上。。(用线段树维护一下最小值)。。因为aabb>aaabb。。预处理字符串s中每个字母的出现次数。。把选上的字母进行排序原创 2016-10-09 01:14:24 · 377 阅读 · 0 评论 -
Intel Code Challenge Elimination Round D Generating Sets(贪心+线段树)
传送门:D Generating Sets题意:定义每个数x都可以由x/2得到,给定一个数列ai,要求输出能得到ai的bi,并使bi的最大值最小。思路:每次用最大值除2,直到不能除为止。。可以用线段树维护最大值。。贴代码原创 2016-10-04 10:41:35 · 266 阅读 · 0 评论 -
Intel Code Challenge Elimination Round C Destroying Array(线段树)
传送门:C Destroying Array题意:给定n个数的序列,n次操作,每次从中删除一个数,问删后的最大连续字段和。(删除的数也占位置,位置相邻的才是连续)思路:用线段树维护一下区间最大连续和即可。。贴代码原创 2016-10-04 09:59:59 · 296 阅读 · 0 评论 -
Gym 100803A(贪心)
Gym 100803A思路:将所有的1(或0)都移动到指定位置,剩余的0(或1)就无需考虑了。1和1以及0和0之间不必移动。/************************************************************************* File Name: A.cpp ID: obsolescence BLOG:原创 2016-07-22 21:34:43 · 413 阅读 · 0 评论 -
Gym 101061G Repeat it(Math)
传送门:G Repeat it题意:给定n,m。。思路:取模运算支持加减乘法。。因为1e9+7是素数,除法求个逆元即可。。m重复n次即为以下数列之和,设m长度为len:m*(10^(len^0)),m*(10^(len^1)),m*(10^(len^2))...m*(10^(len^n-1))显然这是个等比数列,等比数列求和通项公式:a1*(原创 2016-10-09 11:59:08 · 460 阅读 · 0 评论 -
Gym 100712D Alternating Strings (dp)
传送门:D Alternating Strings题意:给定n和k,以及长度为n的01串,现要求切割该串,使得到的每个子串都满足:长度不超过k,且每个子串都不是完全交替的01串,如01,010,101,101010等是完全交替的01串,而001,110,101011则不是,问最少需要切几次。思路:很明显是一个dp。。dp[i]表示i到n-1最少需要切几次。状态转移方程:dp[i原创 2016-10-07 01:00:20 · 298 阅读 · 0 评论 -
Codeforces 797E
题意:给n个数a1,a2,a3...an,q个询问,每个询问给p,k。问操作多少次p=p+ap+k,使得p>n。(p,k思路:有两种思路。1是暴力,会超时。2是记忆化搜索,会超内存。两者结合,当k>根号n时,用暴力,此时的时间是能够接受的,否则用记忆化搜索,此时的内存也是能够接受的。贴代码原创 2017-04-29 21:18:36 · 304 阅读 · 0 评论 -
Codeforces Round #408(Div.2)
A代码B代码C通过模拟可以得出起点i为a[i],i的neighbering x为a[x]+1,其他为a[x]+2这样枚举每个i就能得出答案代码Dbfs从每个警局出发,走过每个点,记录走过的边,输出没走过的边。原图符合每个点走最多d条边就能到警局,所以bfs下每个点走过的边数都是最小的,一定也符合。所以此题可以不用管d这个约束条件。原创 2017-05-01 20:30:35 · 210 阅读 · 0 评论 -
2016 PSUT Coding Marathon(gym100989)
A, C签到题Gym 100989B题意:给一个算LCS时得到的DP矩阵,然后根据这个矩阵让你算出两个符合条件的字符串思路:因为字符串长度/************************************************************************* File Name: B.cpp I原创 2016-07-18 19:38:40 · 895 阅读 · 0 评论 -
Gym 100114C (找循环节)
Gym 100114C思路:看到这种题,n还这么大的离谱。。。就往找规律方面想了。。。/************************************************************************* File Name: C.cpp ID: obsolescence BLOG: http://blog.csd原创 2016-07-22 22:12:58 · 394 阅读 · 0 评论 -
Codeforces Round #208 (Div. 2)
CodeForces 358A Dima and Continuous Line思路:暴力看有无区间交错重叠,如[2,5]和[4,6]。注意[2,5],[4,5]不符合题意。/************************************************************************* File Name: A.cpp I原创 2016-07-23 18:53:50 · 306 阅读 · 0 评论 -
Codeforces Round #204 (Div. 2)
CodeForces 352A Jeff and Digits题意:给n张卡片,只有5和0,求能摆出的最大能被90整除的数思路:有0,且5×(5的张数)能被9整除,则能被90整除/************************************************************************* File Name: A.cpp I原创 2016-07-16 17:20:08 · 277 阅读 · 0 评论 -
2016 Al-Baath University Training Camp Contest-1(gym101028)
A Codeforces Rating题意:给定n和m,以及n个数,问这n个数之和加上1500是否等于m。/************************************************************************* File Name: A.cpp ID: obsoles1 PROG: LANG:原创 2016-07-12 20:41:10 · 775 阅读 · 0 评论 -
Codeforces Round #201 (Div. 2)
A Difference Row题意:给定一个序列a1,a2...an,问怎么排列能使(a1-a2)+(a2-a2)+...+(an-1-an)最大,并输出字典序最小排列。思路:上式可简化为a1-an最大,即升序排序,再将最大值和最小值互换即可/************************************************************原创 2016-07-14 11:31:13 · 223 阅读 · 0 评论 -
Codeforces Round #205 (Div. 2)
CodeForces 353A Domino题意:给n对数,分为两列,每对数可以交换位置,问最少做多少次交换可以使两列数的和分别都是偶数,若不能则输出-1。思路:能的话一定是1次或0次,判断一下即可。/************************************************************************* File Name原创 2016-07-18 20:31:56 · 469 阅读 · 0 评论 -
Codeforces Round #200 (Div. 2)
A Magnets 题意:用01表示磁铁的正负极,问有几块分开的磁铁/************************************************************************* File Name: A.cpp ID: obsoles1 PROG: LANG: C++ Ma原创 2016-07-11 09:44:06 · 392 阅读 · 0 评论 -
Codeforces Round #354 (Div. 2)
A Nicholas and Permutation题意:给你一个大小为n的数组,保证数组里的数是1-n.可以任意交换一次位置,求1的位置和n的位置的最大差./************************************************************************* File Name: cf_A.cpp ID: ob原创 2016-06-01 01:07:08 · 248 阅读 · 0 评论 -
2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest
2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)CodeForces 589A思路:暴力模拟,注意读题,dots和‘+’到‘@’可忽略均有条件。/***************************原创 2016-07-28 22:57:32 · 568 阅读 · 0 评论 -
Codeforces Round #206 (Div. 2)
CodeForces 355A题意:S(n)为n各个位上的和,dr(n)为n的根。dr(n) = S(n), ifS(n) ; dr(n) = dr( S(n) ), ifS(n) ≥ 10. 给定k和d,k为n的位数,d为dr(n)/****************************************************************原创 2016-07-19 11:43:45 · 211 阅读 · 0 评论 -
Codeforces Round #410 (Div. 2)
A:代码B:代码C:代码题中的操作操作两次以后可得:-2x[i+1],2x[i],都成了2的倍数。只操作一次的话,只有奇数或是相等的数能都变成2的倍数。也就是说,修改只能改出2来,那只要遍历一遍把它们都变成2的倍数即可。D:代码由题易得出,选出来的要比剩下的大。用A降序排序,n为奇数的话,取第一个,然后后面的每对都取B更大的那个。这样的话原创 2017-04-24 23:13:01 · 326 阅读 · 0 评论