codefoces
Joey丶sunk
古今成大事者 不惟有超世之才 亦必有坚忍不拔之志
展开
-
CodeForces - 839C Journey 期望 dfs
先大喊:我是傻逼!首先这个题很简单 n 个结点, n-1 条边, 不会出现环 我写 MLE 了,因为我很自信的在 dfs 里面判 v 的父结点的时候判成了第 1 个结点,所以,,GG要是说求期望的话 推一下就能发现答案就是 到每个结点的概率之和#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>原创 2017-08-18 20:47:21 · 420 阅读 · 0 评论 -
Generous Kefa CodeForces - 841A
大水题妈耶,,,我竟然写出了bug下面是 AC 代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <set>#include <map>#include <stack>#include <queue>#include <ctype.h>原创 2017-08-19 09:54:10 · 481 阅读 · 0 评论 -
Godsend CodeForces - 841B 博弈
简单博弈只要有奇数存在,就是第一个赢 奇数个奇数的话:第一个人全取完就赢了 偶数个偶数的话:第一个人只要留下一个奇数取完其他的就赢了#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <set>#include <map>#include <原创 2017-08-19 09:58:09 · 253 阅读 · 0 评论 -
Leha and Function CodeForces - 841C 组合数
稍微推一下,我们可以猜测 F(n, k)中 n 尽量大, k 尽量小,就能使得 F 尽量大 然后呢,,cf 还是要敢于猜的,40分钟想到了这一点,没敢写,最后交上对了#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <set>#include原创 2017-08-19 10:02:14 · 342 阅读 · 0 评论 -
CodeForces - 849B Tell Your World 简单判两条平行线
已经规定找两条平行直线通过前三个点可以判定一定有两个点再同一条直线上也就是下面代码中 solve 函数里面的 三部分,其余的就是判断斜率是否相同了#include #include #include #include #include #include #include #include #include #include #include #in原创 2017-09-05 21:18:19 · 423 阅读 · 0 评论 -
CodeForces - 849C From Y to Y 构造
最近不知为何,心烦意乱,各种事情都能引起我的烦躁, 难道是传说中的经前综合症?? 格老子!!!或许我知道问题出在哪儿,,,是啊,青春期来的晚啊,情窦初开,,,遇到了感情问题了恐怕,,各中吃醋??? 2333333333333333 何不放烂形骸,心出穹顶外#include #include #include #include #include #include #i原创 2017-09-05 22:10:38 · 302 阅读 · 0 评论 -
CodeForces - 846A Curriculum Vitae LIS(最长上升子序列)n logn
教育场,当真是叫人受教育此场 1 题滚出这个 A 题也是很傻逼,可能是因为最近做题不够,思考不够这个题显然的是求 最长上升子序列#include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2017-09-07 21:50:55 · 428 阅读 · 0 评论 -
CodeForces - 846B Math Show 两种选择方式
对 k 个子任务的花费排序后对于给定的时间 m 考虑先完成一整个任务还是先挑着耗时少的完成#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define原创 2017-09-08 00:15:48 · 513 阅读 · 0 评论 -
CodeForces - 846C Four Segments 暴力+枚举
输入是计算前缀和直接枚举 x2 点,对于 x2 左右两边,分别枚举 x1 , x3 点,记录最大值和 三个点#include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2017-09-08 00:18:38 · 362 阅读 · 0 评论 -
CodeForces - 863A Quasi-palindrome 暴力
。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define PI acos(-1.0)#define in freopen("in.txt", "r原创 2017-10-06 21:22:30 · 245 阅读 · 0 评论 -
Codeforces Round #439 A The Artful Expedient 博弈解释 +暴力写法
毕竟是 A 题,直接两重循环就可以暴力过去。。按博弈想的话就是 : ai ^ aj = ak 的话,那么可以推出 : ai ^ ak = aj 和 aj ^ ak = ai ;没有重复的元素,如果能在已有集合中找到一个 ai ^ bj 满足条件的话,那这个异或后的数(假设为 c ) 也会有 (ai ^ c = bj )或者 (bj ^ c = ai) ,两种情况中的一种,原创 2017-10-07 12:40:28 · 402 阅读 · 0 评论 -
Codeforces Round #439 B - The Eternal Immortality 规律
直接找到规律爆最多只个数就能使得答案确定为 0 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define PI acos(-1.0)#defin原创 2017-10-07 12:49:45 · 252 阅读 · 0 评论 -
C - The Intriguing Obsession Codeforces Round #439 (Div. 2) 找规律-组合数
很傻×,,当时以为这是一个三维的 DP ,,然后稍微推了下 每推出递推方程,,完全没往找规律方面想后来看CF的 Tutorial 感觉豁然开朗,,给定的同种颜色之间两个island 最小距离为三,,也就是最小的时候是三个不同颜色的点相互连通的时候也就是说我们只需要找到两两颜色之间的组合方式,,然后这三个相乘就是了也就是题目中 test 1: 2 ^ 3 = 8 的由来----(因为任意原创 2017-10-07 13:59:29 · 284 阅读 · 0 评论 -
CodeForces - 863B Kayaking 暴力枚举
其实这个题挺水,但是就怕想的稍微复杂点由于 n 很小,乘2 的话 也才 100,所以按最朴素的想法,直接暴力,枚举两个做单人船的人,剩余的那些人坐双人船就是排序后相邻两个差值和就是答案了这个涉及一个传递性 相如: 1 3 3 6 可以划分为 { 1-3 3-6 } 或者 { 3-3 1-6 } 答案一样都是 5 ,, 1 2 3 4 的话 肯定是 1-2 3-4 了原创 2017-10-08 20:46:44 · 537 阅读 · 0 评论 -
CodeForces - 863C 1-2-3 暴力规律-- STL应用
这片题解写的真的丑 主要是 变量名用的挺乱至于思路: 一看就是有循环的题,然后找出循环节直接计算就行了这里用 pair 存两个人选择的 “对”, map 存谁胜出, vector 存过程#include #include #include #include #include #include #include #include #include #includ原创 2017-10-08 23:11:59 · 452 阅读 · 0 评论 -
CodeForces - 867B Save the problem! 构造
简单构造直接 用 1分 的和 2分的 构造#include#include#include#include#include#includeusing namespace std;const int maxn = 100 + 7;int n;int main() { scanf("%d", &n); printf("%d 2\n", (2*n)-1);原创 2017-10-02 17:46:04 · 612 阅读 · 0 评论 -
CodeForces - 867C Ordering Pizza 贪心
其实是贪心,开始没看清题意,把 a b 两种披萨分开进行背包。。。。贪心的话就是,先选取 a b 中最有幸福值的那个,然后分别储存差值,最后看分别选取的 a b 两种是不是最少选取的披萨数,不是的话进行调节,看看把 部分a换成b 还是反过来减少的幸福值更少#includeusing namespace std;typedef long long ll;const in原创 2017-10-03 19:22:58 · 655 阅读 · 0 评论 -
CodeForces - 864E Fire 背包+记录路径
整理一下#includeusing namespace std;const int maxn = 100 + 7;int n, max_;int ans[20*maxn];int path[maxn][20*maxn];struct node { int t, d, v, id;} a[maxn];bool cmp(node a, node b) { r原创 2017-10-03 19:33:03 · 295 阅读 · 0 评论 -
CodeForces - 867E Buy Low Sell High 贪心+优先队列
根据题意可以想到 找所有正序的对,先找最小和最大的,本想着 线段树维护来着,,,这里的做法是优先队列保存最小值,遇到大于优先队列堆顶的元素 ans 加上差值,然后这个元素入队两次贪心的做法之所以有他的正确性,就是入队两次的元素,一次相当于本身,另一次相当于传递前一个值找到最大的差值(也就是答案) #include<bits/stdc++.h>using nam...原创 2017-10-03 21:16:51 · 955 阅读 · 3 评论 -
CodeForces - 616A Comparing Two Long Integers
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;const int maxn = 1000000 + 7, INF =原创 2017-10-28 10:20:42 · 217 阅读 · 0 评论 -
CodeForces - 616B Dinner with Emma
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;const int maxn = 100 + 7, INF = 0x3原创 2017-10-28 10:21:37 · 238 阅读 · 0 评论 -
CodeForces - 614A Link/Cut Tree 注意边界
有点坑的地方就是 结果可能超long long 要随时判断 中间值是不是会超过 给定的最大值,那样就不用算了#include #include #include #include #include #include #include #include #include #include #include #include using namespace std原创 2017-10-28 10:23:25 · 249 阅读 · 0 评论 -
CodeForces - 868B Race Against Time 简单模拟
通过给定的时间可以确定哪两个数之间不能通过,或者哪个数被挡住了然后判一圈就是了#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define PI ac原创 2017-10-06 13:40:04 · 302 阅读 · 0 评论 -
Bark to Unlock CodeForces - 868A
判自身,判相接#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define PI acos(-1.0)#define in freopen("in.tx原创 2017-10-06 13:42:46 · 405 阅读 · 0 评论 -
CodeForces - 868C Qualification Rounds 状态压缩(转二进制)
状态压缩给定的 K 只有 4 ,,所以给定的 1e5 问题个数可以被压缩成16种,因为我们要判是不是有两个问题是互补的,或者都是 0 ,这个用 “ & ” 可以轻松实现,,这样只需要把给定的每个问题转化成 一个二进制数 就行了。。#include #include #include #include #include #include #include #in原创 2017-10-06 13:44:07 · 312 阅读 · 0 评论 -
CodeForces - 863D Yet Another Array Queries Problem 往回查找
区间操作的问题,两种操作乍一看挺吓人,,但是 这个题让输出的是 m 个,数量很小一般遇到的区间操作的题都是输出最后的区间,或者一种操作是求和之类的输出,那样的话可能就要用树状数组或者线段树了而这里只问很少的 m 的位置的,而且没有改变原数组的值,所以对于每个位置,根据 Q 个操作,往回找到他的位置就行了#include #include #include #inc原创 2017-10-12 18:59:30 · 250 阅读 · 0 评论 -
M - Quadcopter Competition 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest
只需要注意两个点是不是在一条直线上就好#includeusing namespace std;int main() { //cout << " 233 " << endl; int x, y, i, j, ans; scanf("%d %d %d %d", &x, &y, &i, &j); if(x == i || y == j) {原创 2017-10-22 18:53:23 · 259 阅读 · 0 评论 -
F - Lost in Transliteration 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest
思路是 把 h 前面的 k 都去掉, 然后把所有的 u 变成 oo ,之后的 string 放入 set 自动去重后 大小就是 answer#includeusing namespace std;const int maxn = 100;int n;char s[maxn];bool vis[maxn];set st;void work() { int原创 2017-10-22 18:55:38 · 414 阅读 · 0 评论 -
E - Field of Wonders 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest
题意有点难理解最后的意思就是 能不能找一个字符 使得原串中隐藏位置的字符显现出来,问这样的字符可能有几个首先,给定的 m 个串可能是不合法的,排除掉;而且 m 个中至少有一个是跟远原来串一样的,但是 m 个串中有的有 有的没有的字符 不确定是不是一定存在,,所以要找 m 个串中都存在的字符才能实现题意要求所以 最后也就是求这样的 字符的个数#includeu原创 2017-10-22 18:57:50 · 325 阅读 · 0 评论 -
Educational Codeforces Round 30 - Strange Game On Matrix 前缀和 问题
水题数据量不大,直接 用 sum [ i ] [ j ] 表示 第 i 列 前 j 个元素的和;然后 每一列,枚举 第 j 个元素,找出 ( j ) ~ ( j+k-1 )区间和最大值,这时 前 i - 1 个元素的和就是要改变的值再骂一发,,昨晚的 B 好傻逼,,以前做过类似的题的,,明明扫一遍就好,,几把还很自信的用 二分写!! shabi~~#includ原创 2017-10-13 17:25:10 · 281 阅读 · 0 评论 -
Codeforces Round #397 B - Code obfuscation
题意是从串的开始换字符,从a开始在一个字符之前不能出现比他大的字符#include#include#includeusing namespace std;const int maxn = 100 + 7, INF = 0x7f7f7f7f;string s;int main() { cin >> s; char c = 'a'; for(in原创 2017-10-14 01:36:00 · 291 阅读 · 0 评论 -
A. Neverending competitions Codeforces Round #397
、、、、#includeint main(){ int n; scanf("%d", &n); if(n%2) printf("contest"); else printf("home"); return 0;}原创 2017-10-14 01:51:56 · 191 阅读 · 0 评论 -
C. Table Tennis Game 2 Codeforces Round #397
看清题目要求每轮结束,必须有一个人够 k 分数,,如果两个人分数都大于 k 自然是都有赢得时候,这时候答案是 (a/k)+(b/k);如果有一个人分数低于 k 的话,也就是这个人没赢过,为另一个人的分数 必须是大于等于 k 的数,并且是 k 的倍数其他情况的话就是不可能的情况了 #include#includeusing namespace std;int原创 2017-10-14 03:15:12 · 347 阅读 · 0 评论 -
CodeForces - 618B Guess the Permutation 暴力从1开始找
给定确定的 1-n 我们可以从1开始找,矩阵中某一行一定有n-1个 1, 然后找 2 ,矩阵中一定有某行 有 n-2 个 2 ,,一次类推O (n^2) #include#include#include#include#include#include#include#include#include#include#includetypedef lon原创 2017-10-31 13:42:40 · 248 阅读 · 0 评论 -
CodeForces - 618C Constellation 枚举
按坐标排完序后,选定前两个点,枚举后面的点两种情况:2. 如果与前两个点在一条直线上不用考虑,对后面的点不产生影响1. 与前两个点不在一条直线上,直接输出三个点,就算第三个点之前有点在前两个点的直线上,也不影响边肯定在外面#include#include#include#include#include#include#include#include原创 2017-10-31 16:41:24 · 275 阅读 · 0 评论 -
CodeForces - 615B Longtail Hedgehog 建有向边(假dfs = 递推?)
题意有点恶心,总结为: 每个点有一个值,这个值的定义是 这个点的度数(也就是有几个点跟他连着) * 从这个点往后找连着的编号递减的链长度度数好算,输入时出现的次数就是度,,至于编号递减的链 在建边的时候建成有向边,从编号大的指向小的,本来想跑dfs,后来发现从小的编号开始,直接一个递推过程就算完了#include#include#include#include#in原创 2017-10-31 17:27:25 · 232 阅读 · 0 评论 -
CodeForces - 615C Running Track 暴力
直接暴力枚举,每次找最长的#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int maxn = 3e3 + 7, INF = 0x7f7f原创 2017-10-31 22:57:16 · 361 阅读 · 0 评论 -
CodeForces - 616C The Labyrinth dfs+暴力
预处理每一个 ‘ . ’ 的块(通过上下左右相连的),用 mp 二维数组存编号,,通过这个编号 存这个块含有的 ‘ . ’ 个数最后输出#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typ原创 2017-11-01 11:33:12 · 341 阅读 · 0 评论 -
CodeForces - 850A Five Dimensional Points 数学+暴力
题意:找到所有good点,,这个点 满足的条件是对于其他的任意两点,角度不是锐角思路:我们可以确定如果某个点是 good 点的话,其他的点肯定是 bad 点,还有判断两点是否是 直角或者钝角的时候 可看题解中方法因为不管他是几维坐标,选出来的三个点一定是共平面了,形成的角度也是0 - 180 度,,所以 cos 值 也满足正负的相关关系,#include#in原创 2017-11-09 15:18:01 · 349 阅读 · 0 评论 -
CodeForces - 520C DNA Alignment 推规律
题意:恶心,给定 字符串 S,找到一个串T 使得 那个值最大思路:要使得 这个值最大,我们可以推出来(自己算算),另一个串的所有数字跟 S 串中,出现次数最到的字符一样就是了,,如果S中出现次数最多的字符不止一种,那 另一个串中所有的字符只要是这些出现次数最多的就行了所以串T中 每个位置的选择种数 就是S串中出现次数最多的字符 的种类数,,最后求个快速幂#incl原创 2017-11-09 15:31:59 · 374 阅读 · 0 评论