>水题<
文章平均质量分 70
DT2131
Rage, rage against the dying of the light.Do not go gentle into that good night.
展开
-
Codeforces 631C Report
题意:给出一个2e5的数组,有两种操作1.对【 1 , X 】升序排列2.对【 1 , X 】降序排列求最终的数组思路:单调栈维护有效操作区间后,按序填入每个位置上的数即可。代码:#include using namespace std;const int MAXN = 2e5 + 7;const int INF = 0x3f3f3f3f;int a[MAX原创 2017-11-23 10:17:19 · 394 阅读 · 0 评论 -
HDU 6023 Automatic Judge
题意: 模拟 Online Judge cost 计算。 T 组数据,每组 N 道题 M 次提交记录,问最终 AC 几道题以及 cost思路: map 判重复 AC,模拟即可。代码:#include using namespace std;map vis;int main(){ int T; s原创 2017-05-08 16:25:09 · 284 阅读 · 0 评论 -
Codeforces 805C Find Amir
题意: 给出一个 N 个节点的图,节点 i 到节点 j 的花费为 ( i + j ) MOD ( N + 1 ),问遍历所有节点的最小花费。思路: 举例观察 若 N == 10 那么 1 10 路径 2 9 路径 3 8 路径原创 2017-05-05 10:39:19 · 347 阅读 · 0 评论 -
Codeforces 805B 3-palindrome
题意: 用 a b c 三个字符构造一个长度为 N 的串,保证串中不出现长度大于等于 3 的回文串 并且 尽可能使字符 c 出现的次数最少。思路: 串用 aabb 构造即可满足题意 例:长度为 3 的串为 aab 5 aabba原创 2017-05-05 10:32:07 · 322 阅读 · 0 评论 -
Codeforces 805A Fake NP
题意: 给出两个大于2的数,求两数之间所有数中出现次数最多的因子。思路: 观察可知,除 A==B 时,答案为 A或B 本身,出现次数最多的因子为 2 。代码:#include using namespace std;int main(){ int a,b; scanf("%d%d",&a,&b); if(a!原创 2017-05-05 10:27:56 · 462 阅读 · 0 评论 -
Codeforces 798B Mike and strings
题意: 给出 N 个串,问最少能移动几次使 N 个串都相等。 移动的规则是,每次只能将一个串首的字符移到串尾。 N 最大 50,串长最大 50。思路: 竟然是暴力题。 50^4 并不超时……代码:#include #include #include #include #include us原创 2017-04-22 01:35:35 · 680 阅读 · 0 评论 -
2017 黑龙江省赛热身赛 C - World Cup
题意: 思路: 本来是道很简单的题,现场思考的很复杂,这搜那搜的,归并树模拟一下就行。代码:不知道 AC 不 AC 我没有数据......... #include using namespace std;#define ls l,mid,rt*2#define rs mid+1,r,rt*2+1#define sf l,r,rt#de原创 2017-05-11 20:56:06 · 434 阅读 · 0 评论 -
HDU - 4608 I-number
题意: 给出一个正整数x,求最小的整数y,满足y > x且y的所有位的数字和是10的倍数。(x的长度小于1e5)思路: 高精度加法,每次发生进位时,数位的和 减9 。每次 +1 判断即可。代码:#include using namespace std;long long sum;string str1;string str2=原创 2017-04-30 18:07:37 · 282 阅读 · 0 评论 -
Gym 101097I Sticks (思维)
题意: 给出至多 50 种颜色的共 1e6 根木棍,问是否能有 3 支颜色不同的木棍可以拼成三角形。思路: 首先注意可能爆 int 的细节。 队里三个人都在做这道题,结果三个人都思维江化僵化,拖了很久。 结果三个人写了三种代码,都是 AC 的,事后证明三个人的思路原理是一样的。 所以以下贴三种原创 2017-04-27 23:48:52 · 601 阅读 · 0 评论 -
CodeForces - 791C Bear and Different Names
题意: N 个人站一排,从左至右依次每 K 个人中有重名的标记为 NO ,没有重名则标记为 YES,请给出一种可能的队列。N,K思路: 先生成50个不重复的名字,怎么生成都行。 跑一边生成队列,先固定前 K - 1的人名字不重复,若遇到 NO 则向队列后加入即将出队的那个名字。若遇到 YES 就找一遍队列中没有的名字。代码:#inc原创 2017-03-20 13:10:29 · 526 阅读 · 0 评论 -
CodeForces - 782B The Meeting Place Cannot Be Changed
题意: 有 n 个人在一条线上,给出每个人的坐标位置和每个人行走的速度。问要使所有人聚在一起所需的最优时间。思路: 二分枚举时间,判断每个人是否能相遇,若能相遇,说明时间足够,否则反之。代码:#include using namespace std;const int MAXN=6e4+100;const double eps=1e-7;d原创 2017-03-08 23:00:26 · 273 阅读 · 0 评论 -
HDU 6025 Coprime Sequence
题意: T组样例,给出 N 个数,求去掉一个数后,数列的最大 GCD。思路: 维护前缀 GCD 和 后缀GCD 即可。 代码里使用了线段树,其实完全没有必要。代码:#include using namespace std;#define ls l,mid,rt*2#define rs mid+1,r,rt*2+1#defi原创 2017-05-08 16:39:01 · 521 阅读 · 0 评论 -
Gym - 101341B Pursuing the Happiness
题意: 交换串中的两个位置能否使得串中不含有 “happiness”。思路: 分情况判断即可 值得注意的是,若串中原不含模式串时,我们的随意交换可能反而会形成模式串。 那么原串中若有相同字符,互换即可。若没有,交换头两个字符即可保证不会形成模式串。代码:#include using namespace s原创 2017-05-08 18:15:16 · 506 阅读 · 0 评论 -
51nod 1163 最高的奖励
题意:中文思路:倒过来想,从最后时间的一个任务往前推,找出在某个时间点可做的任务集,取最大权值的任务即可。代码:#include using namespace std;const int MAXN=1e5;typedef struct Node{ int v,t; bool operator < (const Node &a)const{原创 2017-12-10 20:25:33 · 209 阅读 · 0 评论 -
HDU - 1231 最大连续子序列 (前缀和)
题意:中文思路:维护前缀和,最小前缀和,可以计算出每个右端点的最大子序列。代码:#include using namespace std;const int MAXN=1e4+7;int a[MAXN],b[MAXN]={0},c[MAXN];int main(){ int n; while(scanf("%d",&n)&&n){ f原创 2017-09-21 13:02:32 · 871 阅读 · 0 评论 -
HDU 5971 Wrestling Match (二分图匹配)
题意:给你n个人,m场比赛,x个好人,y个坏人,对于每一场比赛,必有一个好人一个坏人,问是否能将n个人完全区分成好坏人。思路:并查集或二分图匹配对于已经确定的好人和坏人先行进行归类,bfs搜一遍即可。对于剩下未确定阵营的人随机选取一个人归为好人或坏人bfs再搜一遍。若两次bfs中出现同一人被分为不同阵营的情况 或 两次bfs后仍有未分配阵营的人 return NO;原创 2017-07-24 12:53:54 · 432 阅读 · 0 评论 -
HDU 5538 House Building (求表面积)
题意:给出一个由立方块堆起的物体,求其表面积思路:扫一遍即可代码:#include using namespace std;const int MAXN=55;int a[MAXN][MAXN];int dirx[]={0,0,-1,1};int diry[]={1,-1,0,0};int main(){ int T,n,m; scanf(原创 2017-07-24 13:17:14 · 337 阅读 · 0 评论 -
HDU 5532 Almost Sorted Array (求逆序数)
题意:给你一组数,能否删除一个后使他成为升序或者降序思路:正反各求一边逆序数即可。代码:#include using namespace std;const int MAXN=1e5+10;int a[MAXN];int b[MAXN];int n;bool solve(){ b[n]=a[n]; for(int i=n-1;i>=0;i--原创 2017-07-24 13:12:37 · 325 阅读 · 0 评论 -
HDU-5122 K.Bro Sorting (逆序数)
题意:给一个1~n的一种排列,每次随机选一个数,如果下一个数比他小,则交换,一直进行上述过程直到下一个数比他大。最少经过多少次这样的循环能将其变成升序?思路:答案等于数列逆序数字的个数代码:#include using namespace std;const int MAXN=1e6+10;int a[MAXN],b[MAXN];int main(){原创 2017-07-24 13:07:44 · 1629 阅读 · 0 评论 -
HDU 5112 A Curious Matt (水题)
题意:有个人在数轴上跑步,已知他在某些时间点时的位置,求他的最大速度。思路:按时间sort然后依次处理即可代码:#include using namespace std;const int MAXN=1e6+10;typedef struct Node{ double t,x; bool operator < (const Node a)const{原创 2017-07-24 12:58:09 · 305 阅读 · 0 评论 -
HDU 5515 Game of Flying Circus
翻译&题解:http://blog.csdn.net/snowy_smile/article/details/49535301 代码:#include using namespace std;const double eps=1e-8;double t,v1,v2;bool solve(){ double le=0,ri=300,mid; if(v1==v2原创 2017-06-18 10:46:55 · 354 阅读 · 0 评论 -
HDU 6027 Easy Summation
题意: 给出 N 和 K,问( 1^k + 2 ^k + ......... + N^k )Mod 1e9+7 的值。思路: N 小于 1e5,k小于6,暴力即可。 若 N 的范围较大,好像可以推出公式求解。代码:#include using namespace std;const int MOD=1e9+7;c原创 2017-05-08 16:44:34 · 696 阅读 · 0 评论 -
Gym - 101341C Urn with Balls
题意: 给出 N 个 红球 M 个蓝球,K个未知颜色(任何颜色)的球。问最多取出几个球才能使取出的球中红球数量不超过 Q ,蓝球数量不超过 P。思路: 假设 K 个球都是红球或蓝球即可。代码:#include #include #include #include using namespace std;const int INF=0原创 2017-05-08 22:16:47 · 590 阅读 · 0 评论 -
CodeForces - 779D String Game
题意: 给你一段操作序列; 按顺序依次删掉字符串1中相应位置的字符; 问你最多能按顺序删掉多少个字符; 使得s2是剩下的字符构成的字符串的子列; 思路: 由于是求数量,统计后答案只有 2e5 个,故在其他方法难以完成时,可以考虑二分枚举答案。 二分枚举答案,每得到一个答案就把原创 2017-03-08 17:20:19 · 363 阅读 · 0 评论 -
CodeForces - 777C Alyona and Spreadsheet
题意:中文思路:vector存图,先求每列每个位置开始的最长非降序列的终点。由于题意只要求满足一列。故不同列中同一起点的最长非降序列记录在一起就可以。由于我们统计的是终点,故从前向后,后边位置开始的终点必定大于前边位置开始的终点。最后遍历一边,得到的是从某个位置开始最长非降序列的终点。代码:#include using namespace std;const原创 2017-03-08 12:14:46 · 323 阅读 · 0 评论 -
CodeForces - 777B Game of Credit Cards
题意:两个人都有n个数字, 然后两个人的数字进行比较; 数字小的那个人得到一个嘲讽; 问你如何搞 才能让Moriarty得到的嘲讽最少; Sherlock得到的嘲讽最多; 思路:为了让Moriarty得到的嘲讽最少,两人每次打平即可;为了Sherlock得到的嘲讽最多,Moriarty只要高一分就行;排序后二分。代码:#include u原创 2017-03-08 11:55:00 · 404 阅读 · 0 评论 -
NEFU 1114 expression
题意:中文思路:将不等式转化为区间,对符合要求的点染色,求出点的最大值代码:#include #include #include using namespace std;int main(){ int n; string str; while(cin>>n){ int k; int a[3000]={0};原创 2016-12-20 13:25:45 · 264 阅读 · 0 评论 -
NEFU 1211 (二分枚举)
题意:中文(样例解释:第一组:用5天卖7件物品,最优答案每天的情况分别为(100+400, 300+100, 500 ,101 ,400),5天中最大值为500。第二组:用2天卖4件物品,最优答案每天的情况分别为(2+6,4, 2),2天中最大值为8。若第二组可以用3天卖4件物品,最优答案每天的情况分别为(2, 6,4+2),3天中最大值为6。)思路:二分枚原创 2016-12-20 13:03:29 · 361 阅读 · 0 评论 -
Gym 100989F STL
http://codeforces.com/gym/100989/problem/FF. Mission in Amman (A)time limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutput原创 2016-07-12 11:25:51 · 471 阅读 · 0 评论 -
HDU 3293 由简单排序引发出的一点思考
C - sortTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionAs is known to all, long long ago sailormoon once was an association of原创 2016-07-08 18:49:53 · 401 阅读 · 0 评论 -
CodeForces - 701C They Are Everywhere (尺取法)
题意: 给你一个长度为N的串,求最短连续子串的长度。子串要包含原串所有字母。(本题只包含大小写字母)思路: 这是一道尺取法的典型例题,通过开始点和结束点的移动取得子串,并判断是否符合题意。每个点只会被访问两次,时间复杂度为O(n)。 注:尺取的规则是 1.若子串不符合条件,则子串向右扩张原创 2017-01-07 18:27:38 · 347 阅读 · 0 评论 -
HDU 5747
AaronsonTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 627 Accepted Submission(s): 356Problem DescriptionRecently, Peter s原创 2016-07-26 10:54:58 · 350 阅读 · 0 评论 -
HDU 1174 水几何计算
爆头Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u HDU 1174Descriptiongameboy是一个CS高手,他最喜欢的就是扮演警察,手持M4爆土匪的头。也许这里有人没玩过CS,有必要介绍一下“爆头”这个术语:所谓爆头,就是子弹直接命中对方转载 2016-08-10 18:34:50 · 460 阅读 · 0 评论 -
CodeForces 697B Barnicle
B - BarnicleTime Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64uSubmit Status Practice CodeForces 697BDescriptionBarney is standing in a bar and starring原创 2016-09-18 10:12:36 · 601 阅读 · 0 评论 -
Codeforces550A Two Substrings 暴力
题意:给出一个串,若能找出一组AB和BA,且互不重合。思路:离散化后暴力找匹配。#include using namespace std;const int MAXN=1e5+10;int flag1[MAXN];int flag2[MAXN];int main(){ //ios::sync_with_stdio(false); char a[MAXN原创 2016-10-30 16:53:04 · 469 阅读 · 0 评论 -
Codeforces 741A (求环的大小)
题意:我也没看懂,转一下别人的(转1)很多个人,一次给对应的人打电话。第t个人就是第一个人的Joon-Joon。问t最小为多少可以让每两个人互为Joon-Joon。其实是个数论题,对于每个人,找到其循环节是多少。然后求最小公倍数即可,注意可能会爆int,要用long long。(转2)题目扯了一大堆,主要是这个意思。n个人,每个人有一个打电话的对象(可以是自己),设t为打电原创 2016-12-25 14:00:28 · 411 阅读 · 0 评论 -
CodeForces - 701D As Fast As Possible (数学推导)
一开始推以为要推出一个一元二次方程,然后二分解。后来越来越推不出,只好搜题解看看。以下内容皆为转载,转自xgogoforit的博客题意开始的时候还没弄懂题意,以为就是一个追击问题的极限形式,但是样例都对不上。还有就是这句话as well as the reversal of the bus,我以为是返回的时候也是不要时间的意思,但是好像应该是车掉头不要时间 -。- …转载 2017-01-08 11:49:02 · 482 阅读 · 0 评论 -
CodeForces - 501B Misha and Changing Handles (map双向)
题意:N 组修改,每组将一个老字符串改成新字符串,问层层修改后最初的字符串和现在的字符串分别是什么?输出一共有几组字符串,输出顺序随意。思路:题目很简单,就是 x 对应 y , y 对应 x ,写两个 map 就行。但涉及到对双向 map 的一些思考。代码:#include using namespace std;map root,toroot;map nt_rt;原创 2017-01-14 19:28:55 · 353 阅读 · 0 评论 -
HDU 5999
题意: T 组数据 , 每组数据 N 个数据 , 每个 数在1000以内。 买 N 个东西,买 2 送一 ,问买所有东西的最小话费。思路: 排个序就行代码:#include #include #include using namespace std;int main(){ int T,n,ans,a[(int)1原创 2017-01-29 12:52:13 · 538 阅读 · 0 评论 -
CodeForces - 349B Color the Fence (思维)
题意: 九个数字,从一到九,每个数字的花费为 a[i] ,问总花费不多于 N 时,组成的最大的数是多少?思路: 先用权值小的数字占位,多余出的价值更新每一位为大些的数字即可代码:#include using namespace std;int n;typedef struct Node{ char numb; int cost原创 2017-01-19 15:05:45 · 414 阅读 · 0 评论