Codeforces
文章平均质量分 71
HARD_UNDERSTAND
Just try
展开
-
Codeforces 873 D Merge Sort 【分治】
题目: http://codeforces.com/contest/873/problem/D题意: 子序列长度为n,归并排序,如果子序列不是有序的,那么就折半,再递归,直到子序列有序,总共递归k次。 给出n和k,求原来的子序列。分析: 归并排序的变形,每次折半直到k为0。代码:#include <iostream>#include <algorithm>#include <string原创 2017-10-30 00:27:44 · 383 阅读 · 0 评论 -
Codeforces 733D 立方体(想法题)
题目:http://codeforces.com/contest/733/problem/D 题意: 给定n个长方体,求一个最大的内切球的半径,可以是两块石头将两个完全匹配的面合起来的或者就用一块石头,输出切出最大内切球的那1/2个石头是哪些。分析: 一个立方体得到一个球,那么限制球半径大小的是最小的边长。 考虑一个立方体,那么最优一定是max(min(a[i],b[i],c[i]原创 2016-11-01 17:16:04 · 782 阅读 · 0 评论 -
Codeforces 733C (模拟,贪心)
题目:http://codeforces.com/contest/733/problem/C 题意: 给你n个数,a1,a2,a3,…an,再给你m个数b1,b2,b3,…bm,问你a序列能否通过合并变成b序列。合并的条件为只能相邻的数合并,ai与ai+1能合并的条件为ai> ai+1或ai< ai+1。合并出来的值为ai+ai+1。然后通过新序列合并下去问你能不能达到b序列?能达到的话输出是原创 2016-11-01 16:53:20 · 693 阅读 · 0 评论 -
Codeforces 703D Mishka and Interesting sum 树状数组
题目:http://codeforces.com/contest/703/problem/D 题意: 给你n个数,m个区间询问 求区间出现次数为偶数次的数的异或和 分析: 如果是奇数次呢?我们知道a^a=0 所以直接前缀异或和就可以处理。所以思考有没有一种反异或运算呢?自己模拟一遍发现这样是错误的。换一个思路考虑,将奇数次变为偶数次来处理,只需要计算出所要查询的区间内不同的数的异或和a原创 2016-08-05 20:07:36 · 646 阅读 · 0 评论 -
Cddeforces 723F - st-Spanning Tree(构造,无权生成树)
题目:http://codeforces.com/contest/723/problem/F 题意: 给你一个联通无向图 让你构造一个无权生成树,使得—— S点的度数不超过SD T点的度数不超过TD 分析: 这题和上一题一样都是构造(灵机一动~~) 首先把不包含s和t的边先求一下连通块 处理完后还剩三种边 s-某个连通块 t-某个连通块原创 2016-10-04 23:27:12 · 493 阅读 · 0 评论 -
Codeforce 723E - One-Way Reform(欧拉回路*,构造)
题目:http://codeforces.com/contest/723/problem/E 题意: n个点m条边的无向连通图 没有自环没有重边 我们要把所有点都定向 希望使得尽可能多的点拥有相同的入度与出度 让你输出满足这个条件的最大点数和每条边最后的定向 分析: 有个结论:只要是度为偶数的点,一定可以构造出入度等于出度。奇度点一定不可能。 如何确原创 2016-10-04 22:59:06 · 530 阅读 · 0 评论 -
Codeforces 671B Robin Hood 二分答案
B. Robin Hood time limit per test 1 second memory limit per test 256 megabytes input standard input output standard outputWe all know the impressive story of Robin Hood. Robin Hood uses his arc原创 2016-05-15 17:26:07 · 1651 阅读 · 0 评论 -
Codeforces 652C Foe Pairs 【dp】
C. Foe Pairstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a permutation p of length n. Also you are given m foe pairs (ai, b原创 2016-04-13 22:06:26 · 733 阅读 · 0 评论 -
Codeforce 633D multiset
题目:Codeforces 633D 题意: 给出n个数,要求将这n个数排列,使得满足下列要求的前缀最小 the sequence consists of at least two elements f0 and f1 are arbitrary fn + 2 = fn + 1 + fn for all n ≥ 0. n<=1000 分析: 因为f0和f1原创 2016-03-22 19:27:16 · 306 阅读 · 0 评论 -
Codeforces 721D (优先队列,模拟)
题目:http://codeforces.com/contest/721/problem/D 题意: 给出一个n个数的序列,最多可以有k次操作,每次操作可以任选序列中的一个数+x或者-x,求如何使得n个数的积最小?分析: 这题比较麻烦,有一些情况 首先分析,要想积最小,那么就把积变成负数。 如果可以变成负数,那么就尽量让所有数的绝对值平均一些,这样积的绝对值才更大。 怎原创 2016-11-03 21:05:57 · 406 阅读 · 0 评论 -
Codeforces 721C Journey (简单dp,dfs)
题目:http://codeforces.com/contest/721/problem/C 题意: 一个DAG图有n个点,m条边,走过1条边花费w个时间单位,总共有T时间,问从1到n最多可以经过多少个点?分析: dp[u][k]表示到u点,已经经过了k个点,还剩下的时间 转移的话在图上搜一遍 担心会超时,可是没有。因为状态最多有n*n个。代码:#include<bits/原创 2016-11-03 19:49:21 · 430 阅读 · 0 评论 -
Codeforces 761E Dasha and Puzzle【构造,树dfs】
题目:http://codeforces.com/contest/761/problem/E题意:给出n(n<=30)个节点的树,给每个点确定一个坐标,使得n-1跳边和坐标轴平行。要保证所有的边都不想交。分析:很显然,如果某个点的度大于4,那么无解。 那么问题的就变成了从一个点出发,把所有邻接点向上下左右四个方向确定即可。 问题的关键是怎么使得所有的边不会相交? 提示:20 + 21 + ..原创 2017-02-28 18:24:50 · 332 阅读 · 0 评论 -
Codeforces Round #398 (Div. 2)题解
题目:http://codeforces.com/contest/767吐槽: 这场的题目不太行啊,感觉B题麻烦的要死,CD都比B简单。A Snacktower分析:简单模拟一下即可。B The Queue题意:排队在窗口买票,营业时间是[ts,tf],一个人办理业务需要的时间都是t 现在知道了n个人去到达的时间f[i] 现在小明要去买票,小明到达的时间如果跟n个人中某人一样,那么就在这些人后原创 2017-02-19 23:36:03 · 431 阅读 · 0 评论 -
Codeforces 765D Artsem and Saunders 【构造】
题目:http://codeforces.com/contest/765/problem/D题意:给你n个数f(i) 现在让你构造一个长度为n的g(i),和一个长度为m的h(i),m由你自己定。 要求g(h(x))=x,h(g(x))=f(x)分析:代码:#include<bits/stdc++.h>using namespace std;int n, f[101000], q[101000原创 2017-02-20 15:05:33 · 326 阅读 · 0 评论 -
Codeforces #443 Div.2 C. Short Program 【位操作】
题目:http://codeforces.com/contest/879/problem/C 题意:有一个函数,输入正整数x,经过n(n<5e5)次操作,返回一个正整数,其中操作有三种,和xi(0~1023)进行 ^ | & ,。现在要求你如何在5次操作内 函数的作用和n次操作相同。分析: x的每一位(0/1) 经过n次操作后,变成(0/1),那么就用and or xor 相应的构造一下即可。#原创 2017-10-27 11:59:26 · 285 阅读 · 0 评论 -
Codeforces 711C. Bear and Tree Jumps【树形dp好题】
题目:http://codeforces.com/contest/791/problem/D题意:你可以从树上的节点一次最多走k条边。 (称为跳一次); 树为无权树; 然后问你任意两点之间的条的次数的和为多少; 分析:不会做,看题解:http://codeforces.com/blog/entry/51068 代码:#include <bits/stdc++.h>using namespa原创 2017-03-24 12:46:48 · 326 阅读 · 0 评论 -
Codeforces 791 C. Bear and Different Names【贪心】
题目:http://codeforces.com/contest/791/problem/C题意:有n个名字,如果连续的k个中有重名,那么就是NO,否则是YES。 现在给出n-k+1个连续的YES和NO序列,要求给出一种符合要求的n个名字。分析:如果是YES的话,那么这k个名字肯定是不同的,如果是NO的话,为了对YES不产生影响,那么就让第i个名字和第i+k-1个名字相同即可。代码:#includ原创 2017-03-24 11:15:25 · 334 阅读 · 0 评论 -
Codefroces 791B【判断完全图,简单题】
题目:http://codeforces.com/contest/791/problem/B题意:给一个图,判断每个连通分量是不是完全图?分析:其实知道是求完全图就很好做了、判断每个连通分量的是否v*(v-1)==e即可,v是顶点数量,e是边的数量。代码:#include<bits/stdc++.h>using namespace std;bool vis[200005];vector<int原创 2017-03-24 11:08:21 · 998 阅读 · 0 评论 -
Codeforces 768B Code For 1 线段树思想
题目:http://codeforces.com/contest/768/problem/B题意:给一个数n,和一个区间[l,r] (r-l<1e5,n<2^50),每次可以把数n分成(n/2,n%2,n/2)知道所有数变成0或1,问区间内有多少个1?分析:因为[l,r]的范围小于1e5,所以想到枚举区间中的第pos个数,判断这个数是0还是1即可。递归去判断最多50,所以不会超时。递归如何判断呢?每原创 2017-02-22 22:01:55 · 912 阅读 · 0 评论 -
Codeforces 754 D Fedor and coupons【优先队列】
题目:http://codeforces.com/contest/754/problem/D题意:从n条线段中取出恰好k条使得交集长度尽可能长,输出最优值和方案。分析:感觉这种题做过好多次了,贪心+优先队列就可做。 根据左端点排序,然后依次插入右端点,直到队列中元素有k个,然后当前插入的左端点是最大的,队首的就是右端点最小的。这样维护一下即可。 set和优先队列都可以,set似乎更方便些~~代码原创 2017-03-02 11:53:29 · 237 阅读 · 0 评论 -
Codeforces 765E - Tree Folding 【树,dfs/bfs】
题目:http://codeforces.com/contest/765/problem/E题意:给你一棵树,可以在这棵树上进行若干次操作,每次操作可以把两条长度相同的链,根据一个中点合并在一起。 然后问你经过若干次合并之后,最后的最短链长度是多少。 如果不能合并成一条链,输出-1.分析:拓扑排序,每次我们从度数为1的点出发bfs。 然后往上合并,如果遇到交叉点,我们就合并链。 我们用一个s原创 2017-02-20 15:24:05 · 678 阅读 · 0 评论 -
Codeforces 670E - Correct Bracket Sequence Editor 链表
E. Correct Bracket Sequence Editortime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputRecently Polycarp started to devel原创 2016-05-09 12:17:08 · 820 阅读 · 0 评论 -
Codeforces Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)
题目:http://codeforces.com/contest/724A. 分析: 水题,两天之间差28,30,31#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int,int>pii;const int INF=1e9;const int N = 1e6 + 10;map<原创 2016-10-09 10:13:47 · 554 阅读 · 2 评论 -
Codeforces Round #349 (Div. 2) C. Reberland Linguistics DP
题意: 自己读了半天题,果断没看懂题意,看了题解才明白是这个意思啊。给一个字符串,去掉一个长度至少为5的前缀,剩下的切成长度为2或者3的串,且相邻的串不相同,问,最后可以切成多少个串且分别是什么;思路:dp[i][2]==1表示i,i+1形成的串可以满足要求,dp[i][3]==1同理;再就是转移了;考虑i位置,长度为2;(1)如果(i,i+1)与(i+2,i+3)相同,那么只有dp[i+2][3原创 2016-05-07 15:57:03 · 559 阅读 · 0 评论 -
CodeForces 652D Nested Segments 树状数组
题意: 给你n个区间,问第i个区间有多少个子区间? 分析: 跟poj2481那题差不多,把区间看成是一个点,那么一个区间的子区间一定在它的右下方,即x比他的大,y比他的小的点。然后用树状数组搞下就好,因为题目范围是( - 1e9≤ li < ri ≤ 1e9) ,所以要离散化,因为每个区间的右端点都不一样,所以直接对y排序后离散化就可以。#include<iostream>#include<原创 2016-04-16 12:54:20 · 490 阅读 · 0 评论 -
Codeforces 650B 二分
题目:http://codeforces.com/problemset/problem/650/B 题意: :给n张图片循环可看,每张图片的朝向为横(w)|竖(v),但是手机是竖直放置的。开始时打开的是第0张图片,如果一张图片为w放置就需先花b秒边把该张图片变成v朝向,从一张图片到下一张图片手机的反应时间为a秒,每观察一张图片需要1秒钟。不能直接跳过没看的图片,但是重新刷到看过的图片时,所花的时原创 2016-03-28 22:28:58 · 455 阅读 · 0 评论 -
Codeforces 650A 数学简单题
题目:http://codeforces.com/problemset/problem/650/A题意: 给出n个点,问符合和|xi - xj| + |yi - yj|. 这两个公式算出来的两点“距离”相等的点对有几个? 分析: 显然如果上面两个公式相等,那么必须横坐标相等或者纵坐标相等,每次从相等的个数中取出两个的,就是这一相等坐标的排列数,分别按横纵坐标求一遍,但是因为有相等的,这样会重复原创 2016-03-28 22:14:38 · 392 阅读 · 0 评论 -
Codeforces 637D 模拟
题目:Codeforces 637D 题意: 有个人从0点走到m点,中间点会有障碍,他必须跨过去,但是在跨之前,必须跑一段距离,至少是s,然后他就可以跨越不大于d的距离,给出障碍点,问他能不能走到最后。 分析: 这场的题目叙述好难理解,这题我已开始读错题了,一位每个障碍是一段距离,WA了好几次,后来一读原来是点,晕~~ 后来改了一下就A了。简单说一下思路:因为有的障碍物之间的距离太小,所以不原创 2016-03-25 00:02:56 · 514 阅读 · 0 评论 -
Codeforces 632D 暴力
题目:http://codeforces.com/contest/632/problem/D 题目: 给出n个数,和m,要求从这n个数中找出最多个数,使它们的最小公倍数不超过m 分析: 先统计一下输入的数的个数,然后暴力求出每个数的倍数都加上这个数的个数,然后在m的范围内找一个最多的数。#include<bits/stdc++.h>using namespace std;const in原创 2016-03-22 12:45:03 · 442 阅读 · 0 评论 -
Codeforces 632C - The Smallest String Concatenation
题目:Codeforces 632C题意: 输入n个字符串,将这n个字符串加起来,求最小字典序的字符串 例: Input 5 x xx xxa xxaa xxaaa Output xxaaaxxaaxxaxxx 分析: 自己像个傻逼一样,写了半天写了个自定义排序函数,虽然过了,但是用时太长了,看了一下cf上别人的代码,我真是太蠢了。。。#include<bits/stdc+原创 2016-03-22 00:07:59 · 467 阅读 · 0 评论 -
Codeforces 645C 二分
题目: In an attempt to escape the Mischievous Mess Makers’ antics, Farmer John has abandoned his farm and is traveling to the other side of Bovinia. During the journey, he and his k cows have decided to原创 2016-04-01 21:52:05 · 376 阅读 · 0 评论 -
Codeforces 6225B KMP
题目:Codeforces 625B 题意: 给你主串s,模式串t,其中t可能会在s中出现很多次,每次操作可以使s中的一个字符换成’#’,问最少的操作次数。 分析: 简单的KMP,求出模式串t在主串中出现的位置,然后再找出重叠的个数,相减即使答案。 例如主串1212121,模式串121,因为主串中有重叠,只需要12#2#21,两次就可以。#include<cstdio>#include<原创 2016-03-20 15:14:27 · 322 阅读 · 0 评论 -
Codeforces 631D - Messenger KMP
题目:http://codeforces.com/problemset/problem/631/D 题意: 输入一段压缩后的字符串,问子串在主串中出现的次数 分析: KMP匹配求子串在主串中出现的次数,因为是压缩后的字符串,这就要考虑字符串的长度。因为要完全匹配,显然,模式串的中间的字符和数目必须要完全和主串匹配,但是前后两个字符数目可以不相等,所以模式串删去前后两个字符,去和主串匹配,完全原创 2016-03-20 13:55:38 · 507 阅读 · 0 评论 -
Codeforces Round #351 Div2 C 简单枚举
C. Bear and Colorstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputBear Limak has n colored balls, arranged in one lo原创 2016-05-08 09:27:47 · 663 阅读 · 0 评论 -
Codeforces Round #351 Div. 2 D 贪心
D. Bear and Two Pathstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputBearland has n cities, numbered 1 through n.原创 2016-05-08 09:38:51 · 482 阅读 · 0 评论 -
Codeforces 653C - Bear and Up-Down 暴力
C. Bear and Up-Down time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard outputThe life goes up and down, just like nice sequences. Sequence t1原创 2016-05-08 13:03:28 · 1048 阅读 · 0 评论 -
Codeforces 711D dfs找环
题目:http://codeforces.com/contest/711/problem/D题意: 有一个n个点的有向图,有n条边,分别从每个点 i 出发指向某个点ai,现在可以把某些边翻转,问总共可以得到多少种无换图? 例如输入: 3 2 3 1 一共有6种方案 分析: 要想得到无换图,那么就需要把环找出来,然后至少翻转一条边就可以了,总的方法数是2^x-2原创 2016-09-01 09:38:47 · 163 阅读 · 1 评论 -
Codeforces 711c 简单dp
题目:http://codeforces.com/problemset/problem/711/C题意: 有n棵树,m(1-m)种颜色,要求划分成k组,每组是连续的同一种颜色的树。 刚开始树有的已经涂上色了,有的没涂色用0表示。第i棵树涂上第j种颜色需要颜料w[i][j]。已经涂色的不能再涂,问最少需要多少颜料?分析: 这题是比较简单的dp d[i][j][k]表示第i个树涂上原创 2016-09-01 09:27:39 · 814 阅读 · 2 评论 -
Codeforces 706D Trie树/multiset
题目:http://codeforces.com/problemset/problem/706/D 题意: +表示吧这个数加到集合中,-表示把这个数从集合中减去一次,?表示集合里面的一个y使的x^y最大分析: 要使异或最大,那么尽量从高位使两个数不同即可。Trie树。#include<bits/stdc++.h>using namespace std;const int N=1e7原创 2016-09-01 09:20:34 · 315 阅读 · 0 评论 -
Codeforces 696B 树形dp,概率
题目:http://codeforces.com/problemset/problem/696/B 题意: 一个树,dfs遍历子树的顺序是随机的。所对应的子树的dfs序也会不同。输出每个节点的dfs序的期望 分析: 分析一颗子树: 当前已知节点1的期望为1.0 ->anw[1]=1.0 需要通过节点1递推出节点2、4、5的期望值 1的儿子分别是2、4、5,那么dfs序所有可能的排列是6原创 2016-09-01 09:13:06 · 373 阅读 · 0 评论