codeforces
文章平均质量分 67
SeasonJoe
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #367 (Div. 2)
做了一下CF的模拟赛,排名在3000这样,实际比赛都是在凌晨真蛋疼,做出了A,B两题这样,不过没抢时间,三题排名在1500左右。下次还是参加实际赛好了,名字还是黑的。A:水题B:二分,我其实没用过STL里的lower_bound和upper_bound,所以这题折腾了很久。lower_bound(ForwardIter first, ForwardIter last,const原创 2016-09-10 16:04:47 · 292 阅读 · 0 评论 -
codeforces712E Memory and Casinos(区间树)
题意:有n个赌场,你在i赌场时,有pi的概率走到i+1,有1−pi的概率走到i−1.保证任何时候pi≤pi+1有q次操作,修改一个赌场的p值;或者询问[l,r]表示从第l个赌场走到r的概率,他在走的过程中不会离开区间[l,r].要点:比较容易看出是区间树,但是这个概率的处理很复杂,基本思路可以参考下面这个博客:参考博客:点击打开链接但是这个博客还有网上我找了一下,有一个原创 2016-11-25 21:50:58 · 331 阅读 · 0 评论 -
codefores741A Arpa's loud Owf and Mehrdad's evil plan(图找环)
题意:对于给定的一个数列a[n],如果现在点i,那么下一个点就在a[i],现在问给定n个点,找到一个最小的t,使得对于从任意一个点x出发,经过t次之后,到达的点y, 使得点y经过t次之后会回到点x。要点:一看就是图找环,找到所有独立的环对应的节点数,对所有节点数求最小公倍数就是结果。有个地方要注意就是,当节点数是偶数时,比如1->2->3->4->1,这种情况要将节点数/2计算,因原创 2016-12-07 16:49:08 · 471 阅读 · 0 评论 -
codeforces742B Arpa’s obvious problem and Mehrdad’s terrible solution(水)
题意:给出一系列数字,求两两异或为x有几对。要点:看范围10^5就知道直接循环肯定gg,所以用一个num[x]存储x出现过几次,一般用两个for可以简化,像下面这样:#include#include#include#include#include#include#include#includeusing namespace std;typedef long lon原创 2016-12-07 16:38:46 · 292 阅读 · 0 评论 -
codeforces712D Memory and Scores(前缀和优化dp)
题意:两个人玩取数游戏,第一个人分数一开始是a,第二个分数一开始是b,接下来t轮,每轮两人都选择一个[-k,k]范围内的整数,加到自己的分数里,求有多少种情况使得t轮结束后a的分数比b高。 (1 ≤ a, b ≤ 100, 1 ≤ k ≤ 1000, 1 ≤ t ≤ 100)要点:一开始没想到是dp,实际上可以用dp[i][j]表示第i轮比一开始多得到j分的方案数,所以一开始a,b原创 2016-11-25 08:23:32 · 640 阅读 · 0 评论 -
【Dijkstra模板】codeforces715B Complete The Graph(最短路径)
struct Edge{ int from, to, dist; Edge(int u, int v, int w) :from(u), to(v), dist(w) {}};struct HeapNode{ int d, u; HeapNode(int x, int y) :d(x), u(y) {} bool operator<(const HeapNode &rhs) co原创 2016-12-03 12:20:32 · 512 阅读 · 0 评论 -
codeforces721D Maxim and Array(贪心)
题意:给出一系列数,要求可以进行k次操作,每次可以将数列中一个数+x或-x,求这些数的乘积的最小值。要点:这题就是贪心,如果负数是奇数个,就将当前数列中绝对值最小的数远离0,如果是偶数个,就靠近0。自己算算觉得还是挺靠谱的,感觉自己做还是不敢这么写。#include#include#include#include#include#include#includeusin原创 2016-11-15 20:27:47 · 500 阅读 · 0 评论 -
codefores741B Arpa's weak amphitheater and Mehrdad's valuable Hoses(并查集+背包)
题意:给出一些女孩的体重和美貌程度,这些女孩是按照组在一起的,要么选一整个组,要么只能选组里的一个,最后求总重量为W的女孩最大美貌程度要求:这一看就是并查集+背包,主要是这个选择的问题,用背包时按组数遍历,每次状态转移一整个组或遍历整个组转移其中一个女孩,这里面的状态转移一开始没怎么搞清楚。#include#include#include#include#include#原创 2016-12-10 12:04:35 · 685 阅读 · 0 评论 -
codeforces721C Journey(DP)
题意:给出一个图,问从点1到n,在总时间为T的情况下最多能经过多少城市?要点:一看就知道是DAG里的DP,直接递推比较难写,用记忆化搜索比较方便,基本思路就是用dp[i][j]存储从i开始经过j个城市所需最少时间,最后找出时间小于等于T的j的最大值即可。#include#include#include#include#includeusing namespace std;原创 2016-11-14 22:00:11 · 381 阅读 · 0 评论 -
【?】codeforces721E Road to Home(DP+单调队列)
转换关系搞清楚了,但是关于那个单调性来处理DP的地方,还是不明白,应该是单调队列优化DP这个点不会,补一下代码,先学一下单调队列优化DP,参考博客:点击打开链接#include#include#includeusing namespace std;const int maxn = 100005;int f[maxn], g[maxn];int main(){ int l,原创 2016-11-17 15:59:11 · 434 阅读 · 0 评论 -
codeforces732E Sockets(贪心)
题意:给出一些给定功率的电脑和插座,只有功率匹配才能连接,另外有一些适配器,连在插座上可以把插座功率降为1/2,求最多匹配电脑数和需要的适配器数以及具体映射。要点:这题就是贪心+STL的应用,主要是贪心的证明,具体证明看下面这个博客:参考博客:点击打开链接#include#include#include#includeusing namespace std;const原创 2016-10-31 22:35:04 · 296 阅读 · 0 评论 -
codeforces731E Funny Game(DP)
现在主要是以cf上比赛为主了,以后除了我觉得很有必要总结一下的题目,不会每道题都记录在博客上了。这题是一道DP,看起来很像博弈论,但是其中的思想还是有点新颖的。题意:给出一系列数,有两个人,每次从这些数的最左边拿走k个数,范围为2~m。特别之处在于,拿走后会把拿走的数的和作为一个新的数放在最左边,要求两个人拿走数之差的最大值。要点:看起来很像博弈论,但是其实不是,因为每次拿走后都会原创 2016-10-20 20:17:30 · 595 阅读 · 0 评论 -
codeforces723E One-Way Reform(欧拉通路)
第一次打线上赛,1456分来着,感觉自己模拟题做的不怎么样,总是想复杂,而且写代码慢的要死,这套题说实话还算简单,但只A了两道,其他的题都很基础,这题欧拉通路我刚好不会,所以写一下。题意:n个城市之间m条双向道路,现在把双向道路变成单向,求让出入度相同的城市最多的路线图。要点:这题就是个欧拉通路问题,因为要把双向变成单向,所以原本的出度如果是奇数,说明这个顶点的入度和出度不相等,原原创 2016-10-06 12:06:02 · 410 阅读 · 0 评论 -
Codeforces Round #366 (Div. 2)
本来想做一个div2的模拟练习的,结果一不小心做了div1了,感觉div1的A题就有div2的C题难度。题意:手机的app有通知,现在有n个app,q个操作。一共有3种操作:1.appX产生一个通知;2.阅读appX的所有通知;3.阅读前t条通知(其中有的通知可能已经读过)。要点:就是一个队列模拟,具体解析看下面的代码吧。#include#include#include#原创 2016-09-30 09:55:55 · 348 阅读 · 0 评论 -
codeforces732D Exams(二分)
题意:给出一串数字,代表了第i天能够进行哪场考试,如果为0就不能考试,每天只能考一场。一共要考m场试,每门科目要a[i]的复习时间,所以问最快第几天能够考完所有科目。要点:一开始我觉得BFS可以做,后来发现状态量没法表示,网上看了一下,原来可以用二分做,因为当第i天时考科目d[i]时,你最多可以有i-1天复习,然后如果这天考试了,再往前进行状态转移。#include#includ原创 2016-10-24 21:31:44 · 391 阅读 · 0 评论 -
Codeforces Round #369 (Div. 2)
这比赛比较坑啊,看了一下A题过了7000+人,B题直接只剩2000+人。这套题的B题非常坑,很多陷阱。A:水题B:这题就是一个幻方,但是非常坑,有这么几个坑点:1.如果n==1,随便输出一个数即可,但不能是0;2.算出的答案必须是正整数,#include#include#include#includeusing namespace std;long long ans;原创 2016-09-18 08:55:36 · 256 阅读 · 0 评论 -
codeforces723F st-Spanning Tree(连通性t)
题意:给出一个n个顶点m条边的无向图,并给出两个点s,t和对应的度数,要求将图转变为一颗生成树,并且s,t的度数要满足要求。要点:生成树也就是把原图的边减少至n-1条边,并且所有的点都连通。这题的思路是将st除去的图进行连通操作,然后此时这些连通块可以分为二种:1.只和st其中一个相连2.和st两个都相连我们需要先将第一种连通块的先连在st上,因为它是必须要连的,否则没有地原创 2016-10-09 08:18:56 · 607 阅读 · 0 评论 -
codeforces732F Tourist Reform(边双连通分量)
题意:给出一个无向图,要求转变为有向图,使所有点能到达的点数的最小值最大。要点:就是一个边双连通分量,不过我没学过,看了一下白书,觉得就是无向图中的强连通分量,但是其中有很多细节有点难推敲,基本思路就是:边双连通分类对应无向图,找出其中内部点数最多的边双连通分量,它的内部所有点都可以到其余点(包括自己),其余的边双连通分量可以指向最大的这个,也就是说其他所有点的能到达点数是所有的点。最原创 2016-10-27 19:26:03 · 483 阅读 · 0 评论