CodeForces
ThreeWater-
这个作者很懒,什么都没留下…
展开
-
Codeforces Beta Round #2
A.Winner就是求谁先到达最高分#include #include #include #include #include #include using namespace std;string str[1011];int score[1011];int main(){ int n; scanf("%d",&n); map q,qtmp;原创 2016-07-25 12:24:30 · 162 阅读 · 0 评论 -
CF 17B 水题
有n个人然后给他们分配从属关系 只有一个人是没有上级的,求最小花费#include <cstdio>#include <algorithm>#include <iostream>#include <vector>using namespace std;typedef long long ll;int q[1005];vector<int> b[1005];int main(){原创 2016-08-23 22:31:57 · 237 阅读 · 0 评论 -
Codeforces 6D
直接暴力dfs,保证前面的都能到0以下,当到n-1个的时候,还要保证后一个也要到0一下即可。 通常找最小值,dfs需要把所有情况跑遍,得出最小值。 发现如果最小值很小时,也可以通过从1开始枚举到有合理方案位置,即为最小值。 以下代码用的第一种方法#include <cmath>#include <algorithm>#include <cstdio>#include <cstdlib>原创 2016-08-14 01:28:44 · 224 阅读 · 0 评论 -
CF 18B水.
题意:给出n个站台,站台的宽度为l,然后站台的两端坐标符合 [(k - 1)m, (k - 1)m + l],现在从0位置出发,每次移动距离d,问移动到哪个位置会掉下站台。 考虑 (t-1)*m+l#include <cstdio>#include <algorithm>#include <iostream>#include <vector>using namespace std;typ原创 2016-08-24 15:07:52 · 278 阅读 · 0 评论 -
codeforces 24E (二分答案,精度控制)
题意:给你一个x轴,上面分布着很多点,他们都有一个速度, 问速度相反的两个点最早相碰的时间。 这题先是不会做,然后后来看了下题解,然后一直在第三个案例超时,手动调试了一下 2 1e9 -1 1e9 1 这个案例时,l=999999999.99999988,r=1e9 然后一直卡精度出不去,如果把精度放宽又会导致其他答案出现错误,所以要设一个t,当达到一个适当的指,就可以停止二分,bre原创 2016-10-24 09:22:03 · 484 阅读 · 0 评论 -
线段树区间更新760E
入栈为1,出栈为-1,区间更新即可 然后维护最大值, 从右到左找第一个等于1的位置。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+5;#define ls l,mid,rt<<1#define rs mid+1,r,rt<<1|1int a[N<<2]={0},lazy[原创 2017-02-17 09:26:38 · 193 阅读 · 0 评论 -
codeforces 767C (dfs)
比赛的时候卡题卡的厉害,虽然想到正确的方法了,但是因为有点迷糊,给糊里糊涂的叉了 由于子树的子树里再出现等于sum/3的情况,那么dp[u]=0,就可以很好的避免计算情况了#include <cstdio>#include <iostream>#include <vector>using namespace std;#define pb push_backtypedef long lon原创 2017-02-19 00:06:49 · 391 阅读 · 0 评论 -
Codeforces 396 div.2 带权并查集
题意: 一共给你N个单词,其中有M个关系是已知的,我们要对Q对单词进行关系查询。 其中M个关系,要么两个单词是同义词,要么两个单词是反义词。 对于查询,如果两个单词是同义词,输出1,如果是反义词输出2,如果不能确定输出3. 分析: 带权并查集。#include <iostream>#include <cstdio>#include <cstring>#include <algorit原创 2017-02-11 20:36:29 · 216 阅读 · 0 评论 -
Codeforces 395 div2 D
四色定理 :将平面任意地细分为不相重叠的区域,每一个区域总可以用1234这四个数字之一来标记而不会使相邻的两个区域得到相同的数字。”这里所指的相邻区域是指有一整段边界是公共的。如果两个区域只相遇于一点或有限多点就不叫相邻的。因为用相同的颜色给它们着色不会引起混淆。小数据的话,可以直接dfs染色 但是这题大数据 ,就需要观察#include <iostream>#include <cstdio>原创 2017-02-11 21:02:49 · 398 阅读 · 0 评论 -
Codeforces 396 div.2 C dp
题意:一个长为n的字符串,字符的组成全是小写英文字母,给出26个英文字母的所在分割字符串的长度范围,将字符串分割,问有多少种分割方法,分割后最长字符串的长度,最少的分割个数。 分析:dp[i]代表到i位置的分割方法数,那么 当第i个位置到第j个位置能形成一个分割字符串时,dp[i]+=dp[j]. 类似的分割方法数的题目都能这样去做。#include <iostream>#include原创 2017-02-11 21:07:39 · 199 阅读 · 0 评论 -
CF 15C
题意:给出n组xi,mi, 代表有n组数,x,x+1…x+m-1 求这所有数的^值 由于从1和从2开始连续异或值有规律。 1=1 1^2=3 1^2^3=0 1^2^3^4=4 1^2^3^4^5=1 … 四组一循环的规律.. 然后就是 ^的性质了,相同为0,那么S(x-1)^ S(x+m-1)=x^x+1^…..^x+原创 2016-08-22 20:32:30 · 259 阅读 · 0 评论 -
CF 13C
给定一个序列,可以对其中元素进行加一或者减一的操作,问最少多少次操作可以将其转换成非降序列 dp[i][j]表示把前i个数变成非降序列,并且第i个数变成原序列中从小到大第j个数所用的最少步数。 dp[i][j]=min(abs(a[i]-b[j]),dp[i][j-1]).#include<cstdio>#include<cmath>#include<cstring>#include<io原创 2016-08-19 15:18:45 · 395 阅读 · 0 评论 -
Codeforces Beta Round #4
Watermelon题意,给你一个n,能不能拆成两个正偶数#include #include #include #include #include #include #include #include #define ll __int64using namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1原创 2016-07-28 10:39:53 · 198 阅读 · 0 评论 -
Codeforces Beta Round #5
Chat Server's Outgoing Traffic题意:一个聊天室,+代表有人进去,-代表有人出去,名字:话。问你有人说话的时候要发送多少字节。直接模拟一下就好了#include #include #include #include #include #include #include #include #define ll __int64using nam原创 2016-07-30 23:15:53 · 232 阅读 · 0 评论 -
Codeforces Beta Round #3
Shortest path of the king一个棋盘,横坐标用a-h表示,纵坐标用1-8表示,给你两个坐标求最少步数并输出路径(能往8个方向移动)。直接判断x,y坐标的差#include #include #include #include #include #include #include #include #define ll __int64using n原创 2016-07-27 10:32:19 · 153 阅读 · 0 评论 -
Codeforces#2B The least round way
题意:给你一个方阵,求左上角到右下角,求路经的数的乘积尾0最少是多少个,并输出路径。dp求出2最少的路径和5最少的路径,再特殊处理一下0的情况。#include #include #include #include #include #include #include #include #define ll __int64 using n原创 2016-08-02 01:36:41 · 305 阅读 · 0 评论 -
Codeforces#4D Mysterious Present
题意给你个名片的大小,和n个信封的大小,然后问你最多能包装多少层,最长上升序列的问题#include #include #include #include #include #include #include #include #define ll __int64 using namespace std; #define lson l原创 2016-08-02 01:38:59 · 382 阅读 · 0 评论 -
Codeforces5E - Bindian Signalizing
题意:有N座山组成一个环,两座山互相能看到的要求是相连的圆弧上没有任何其他的山高度比它们高。求能看到的山的组数。先把这个环变成一个链,即把最高的山作为第一个山,然后求出每一座山左边和右边第一个高于本身的位置,并且求出本位置到右边第一个高于本身的位置中一样高度的山。用一种动态规划的想法大约线性多一点的时间求出left和right还有c数组。然后每一个座山只要左,右边有比他高的,那么就是两种,原创 2016-08-02 02:19:06 · 940 阅读 · 0 评论 -
CF 9B模拟
从(0,0)站点上车,要赶去(x,y)这个点,公交车只能沿着x轴开,问最快到x,y要从哪一下站下车…水题#include<cstdio>#include<cmath>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define INF 0x3f3f3f3ftypedef long lo原创 2016-08-19 00:32:53 · 243 阅读 · 0 评论 -
CF 9C水题
输入一个n,求小于n只有1和0组成的数的个数#include<cstdio>#include<cmath>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define INF 0x3f3f3f3ftypedef long long ll;const double eps=1e-8;原创 2016-08-19 01:06:39 · 196 阅读 · 0 评论 -
CF 13A
意思就是算2到n-1进制的个位数和,然后与n-2求gcd#include<cstdio>#include<cmath>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define INF 0x3f3f3f3ftypedef long long ll;const double eps=原创 2016-08-19 14:21:26 · 346 阅读 · 0 评论 -
Codeforces 760B (二分)
题意:有n个床排成一排,有m个枕头,求第k个床最多能拿到的枕头数,且满足相邻的床相差不大于1,每个床至少有一个枕头。 分析:二分第k个床最多能有几个枕头,然后根据第k个床的枕头个数,可以依次推出最少相邻枕头的个数,如果枕头个数的和大于m就不符合,r=mid-1;否则l=mid+1; (return 的时候应该返回r)#include <bits/stdc++.h>using namespace原创 2017-02-16 09:31:07 · 396 阅读 · 0 评论