自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Haipai1998的博客

机会总是留给有准备的人

  • 博客(47)
  • 收藏
  • 关注

原创 Codeforces Round #426 (Div. 2) C - The Meaningless Game

题意: 两个人初始积分都为1,接下来n轮(n不确定),每一轮有一个人*k^2 一个人*k,现在告诉你两个人积分的最后结果,问是不是存在这个情况。思路: 假如成立a*b一定是某个数字的三次方,并且a*a%b==b*b%a==0必须成立。暴力枚举要牢记这题是多组测试,所以复杂度是T*1e6 . 这就比较蛋疼。 所以还是开根号,开根号的时候要注意浮点数开根号会不准,所以要四舍五入#include<bits

2017-07-31 14:09:28 293

原创 七月份的最后一天

不知不觉 , 集训一个月就过去了,如果今天不算,那就只有27天的时间了~~~~     时间过得可真是快啊,第一次暑假还能够在学习(除了高三撒),其他初中高中都在玩电脑,打撸啊撸。 这么说起来,细想了一下,已经有四五个月没碰游戏了,也就开始淡忘了游戏,不觉得是生活的必需品。做的还不好的就是手机刷的有点多... 这个比较尴尬,似乎很多人都有这个问题。想想还有27天我就要回家了!

2017-07-31 11:33:36 358

原创 Codeforces Round #426 (Div. 2) B - The Festive Evening

题意:告诉你一个字符串,每一个字母都要有一个人守卫,如果字母没有了,那么守卫可以去保护下一个字母,问,当前守卫数量能不能保证,所有的字母都被保护。思路:记录下到每一个字母所需要的最大守卫数量。 如果当前字母出现过了,并且cnt不为0,那么cnt–。 如果当前字母没出现过,那么ans++; 如果出现过的字母, cnt==0了,ans–;#include<bits/stdc++.h>using nam

2017-07-31 11:31:08 276

原创 Codeforces Round #426 (Div. 2) The Useless Toy

题意:东南西北四个方向,每次转到上一个或者下一个位置。现在告诉你 转的次数 和 起点 终点 问你是经过顺时针得到的还是逆时针得到的。 思路:hash一下,然后算出起点顺时针和逆时针转n次的终点,判断一下关系就OVER了#include<bits/stdc++.h>using namespace std;int judge(char ch) // hash{ if(ch=='^'

2017-07-31 11:25:39 288

原创 Saruman's Army POJ - 3069【模拟+贪心】

题意: 输入n个数字,半径r,每个数字可以上一个标记,影响的范围是[x-r,x+r],问最少需要多少次标记,才可以让所有点都被影响。思路: 先对过程模拟一遍,首先先去找数组里最小的那个数a,在a+r的范围内取找尽可能接近a+r的数组里的数t,然后标记一次,ans++。下一次就从t+r+1的位置循环上面的操作,最后输出ans即可#include <cstdio>#include <iostream>

2017-07-30 15:17:42 339

原创 Best Cow Line POJ - 3617 【贪心】

题意: 告诉你一个长度为n的字符串,每次只能从头或者尾抽出一个字母。要你输出字典序(ASCLL码)最小的情况。思路: 贪心,每次取,肯定取头和尾字典序最小的那个,但对于相同的情况,我们就要判断到底先取那个更有优势,那就要头和尾往中间查,查到哪个达到的比较小,那就是哪个了。#include <cstdio>#include <iostream>using namespace std;const

2017-07-30 14:17:24 317

原创 Okabe and El Psy Kongroo CodeForces - 821E【DP+矩阵快速幂】

题意 :你从起点(0,0)走到终点(k,0),其中你每次只可以走右边,右上,右下三个位置,并且有一个附加条件,对于对应的区间,y有个上限。思路: 看这题一开始有点像搜索,算算复杂度和实现方法,很麻烦。 因为每次你所能到达位置的方案数和前面能到这个点的方案数有关,因此可以用dp做。 状态转移方程为 dp[i][j]=dp[i-1][j]+dp[i-1][j+1]+dp[i-1][j-1],状态转移方

2017-07-29 19:50:30 360

原创 Memory and Scores CodeForces - 712D【好题啊!!】

题意:A和B两个人的初始积分为a,b。每一轮A,B均可从[-k,k]的区间内取出一个数,累加在初始积分上,共执行t轮,问A赢B的有多少种可能。思路:暴力复杂度O(t*kt*k) TLE 。 取dp前缀和优化,每次的前缀和为下次的前缀和服务,以此类推。#include <bits/stdc++.h>using namespace std;typedef long long ll;int MOD=

2017-07-28 19:59:40 383

原创 Okabe and Banana Trees CodeForces - 821B

题意:告诉你一条直线y , 让你求y上的某一点,使得过该点向x,y轴做垂线后得到的矩形和最大。和的定义是矩阵内每个点的 横坐标+纵坐标 ;思路:穷举#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(void){ ll m,b; cin >> m>>b; ll maxs=-

2017-07-28 16:49:02 393

原创 Okabe and Future Gadget Laboratory CodeForces - 821A

题意:告诉你n*n的矩阵,问对于其中任意一个不为1的数,是否有 当前行的某个数+当前列的某个数== 这个数思路:暴力穷举, n <=50#include <bits/stdc++.h>using namespace std;int a[55][55];int n;bool check(int x,int y){ for(int i=1;i<=n;i++) {

2017-07-28 16:46:19 377

原创 Okabe and Boxes CodeForces - 821C

题意: A,B两人起始分数分别为a,b. 他们每次可以从[-k,k]任意抽取一个数字,累加在a的基础上。问最后a能够赢b的可能性有多少种。思路: 基础的dp,可是我写的好搓。第t轮的和,可以从第t-1轮推过来,那么就是简单的递推了。要注意的地方有 下标位移要注意的地方。 我故意写了一份会TLE的代码(感觉自己太菜,想试试最基础的写法),第一份代码的复杂度为O(t*1e5*2k)≈1e2*1e5

2017-07-28 14:37:13 303

原创 DZY Loves Modification CodeForces - 447D

题意:有一个n * m的矩阵,你必须执行k次操作,每执行一次操作,你可以获得当前行(列)所有值的和,并且当前行(列)所有值减去p , 求执行k次所能获得的所有值 ,和的最大值;思路:对于确定的对行执行i次,对列执行j次,可以确定所能获得的最大值,枚举i从0~k,求出max,减去 k*(k-i)p 就是最后答案。因为在对行和列单独进行贪心的适合,对答案的贡献少减了k(k-1)*p !#include

2017-07-26 14:46:38 378

原创 Codeforces Round #425 (Div. 2) B - Petya and Exam

题意:告诉你good字母,对于字符串s1*可以变成任意的非good 字符串; ? 可以变成任意的good字母;问给你s2,问是否能从s1变成s2;思路:判断是否有*,分成2类,然后再分类讨论。 !!!不建议阅读我的代码!!!#include <bits/stdc++.h>using namespace std;const int maxn=1e5+500;bool vis[500];

2017-07-25 19:43:53 343

原创 Unix is 命令 (排序和字符串处理) UVA - 400

#include <bits/stdc++.h>using namespace std;const int maxn=100+5;string s[maxn];int main(void){ int n; while(cin >> n) { for(int i=0; i<n; i++) cin >> s[i];

2017-07-25 16:24:17 478

原创 丑数 (using priority_queue) UVA - 136

set s 作为标记功能,s.insert()实现,s.cout()判断是否出现过,比普通开数组能够节约很多的空间,很有好处。priority_queue#include <bits/stdc++.h>using namespace std;typedef long long ll;int dir[3]={2,3,5};int main(void){ priority_queue<

2017-07-25 14:34:54 347

原创 Fox and Box Accumulation CodeForces - 388A

题意:有n个箱子,告诉你每个箱子上面可以容纳的箱子个数,问至少可以分成几堆箱子。思路: wa 2了发,一直找不出bug, 我想有没有什么东西没特判的。想了很久,没想出来。 想了一个小时,突然想到一个样例,对于3 3 3 ,输出应该是1,而我输出是3,那么问题来了。sort后,对于数字小的,能放的我们应该尽量去放,尽量放的多,这样就尽可能让堆数少#include <bits/stdc++.h>usi

2017-07-24 14:44:37 319

原创 Fox and Card Game CodeForces - 388C

题意:有几堆牌,每一张牌上都有一个数字,两个人抽牌,A只能从牌顶抽,B只能从牌底抽。A先手,问,每个人都采取最优策略的情况下,最后两个人的值分别是多少思路:首先,对于A和B来说,所有的牌都是已知的。对于偶数的牌堆,对于A来说,不管前一半是大于后面一半或者是小于,都没有意义,反正一人一半。对于奇数的,想去取最大的那个。反正我觉得这题说证明过程说不出来,只能说好像是这样,似乎也蛮合乎道理的,看了网上很多

2017-07-24 14:36:49 390

原创 反片语 (using std::map) UVA - 156

题意:输出一些单词,这个单词不能被其他单词重排得到。在判断是不是可以重排得到的时候,不区分大小写。输出按字典序从小到大输出。思路:把所有单词变成小写,sort 一遍,存到map。然后我再for一次,如果某个string 在 标准化之后的key ==1 那么满足条件,输出。#include <stdio.h>#include <iostream>#include <algorithm>#incl

2017-07-23 11:23:03 397

原创 大理石在哪儿 (排序和查找) UVA - 10474

题意:有n个数,现在给你一个x,问是不是存在x;思路:用lower_bound返回第一个大于等于x的地址,如果相等,则存在;否则,不存在。/*** Welcome To See My Code ***//***If I get TLE , it is good.If I get AC,it's NICE !***/#include <stdio.h>#include <iostream>#i

2017-07-23 11:17:51 421

原创 安迪的第一本字典 (using std::set) UVA - 10815

题意:输出所有的单词,按字典序从小到大输出,单词不区分大小写。思路:字典序的话sort就可以,不区分大小写就要用tolower函数。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int INF=2147483647;const int MAXN=1e5+10;const ll mod=1e9+7

2017-07-23 11:15:15 421

原创 木块问题 (using std::vector) UVA - 101

题意:如果s2==”onto” 那么b上面全部归位,如果s1==”move”,那么a上面全部归位。然后再把所有a上面,包括a全部叠到b上面。思路:模拟题。主要熟悉stl中 vector[maxn]的用法/*If I get TLE , it is good.If I get AC,it's NICE !*/#include <bits/stdc++.h>using namespace std;

2017-07-23 11:09:56 481

原创 Case of Matryoshkas CodeForces - 556C

题意:俄罗斯套娃娃。你们都懂得。 然后给定n(娃娃个数),m(几组关系),每组关系中第一个数字是num,代表后面有几个娃娃。问最少花多少时间能把娃娃从1~n套好;思路:对于能从1开始连续的,一定可以不用拆,连着就好了。然后后面统统都要拆,这样时间才会最短#include <bits/stdc++.h>using namespace std;const int maxn=1e5+500;int

2017-07-23 10:45:29 452

原创 CodeForces - 614C

题意:告诉你一个多边形,告诉你以某一个点为圆心转,求扫过的面积。模板题。#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>#include <vector>#include <cmath>#include <queue>#include <string>#include <sstre

2017-07-21 18:46:27 384

原创 Link/Cut Tree CodeForces - 614A

拿到这道题一看,题意很简单,要你输出l,r里 k的power次,不存在的话输出-1;一开始简单的看了一下数据范围,感觉没什么问题。 后来发现,数据大一点的话很有可能就会溢出,那么再加个判断就可以解决溢出的问题。 /***If I get TLE , it is good.If I get AC,it's NICE !***/#include <stdio.h>#include <iostream

2017-07-21 13:21:12 320

原创 Infinite Maze CodeForces - 197D

题意:给定一个可以无限拼接的图,已知起点S,问你是不是能无限走下去。 思路:如何能无限走下去呢? 对于一个田字图,只要在1中可以到达的点,从第一幅图的S在234中依旧可以到达,那么接下来就是重复上次的操作。对于越界的情况,1等效2 对于为什么是4张图的原因是,1图可以延伸234就可以延伸到任意点/*** Welcome To See My Code ***//***If I get TLE ,

2017-07-20 16:47:31 414

原创 A - Plate Game CodeForces - 197A

题意:两个人在一块矩形的桌子上放直径为d圆,谁不能放谁就输。对于确定的矩形长宽,圆半径r。要求判断谁赢谁输。/*If I get TLE , it is good.If I get AC,it's NICE !*/#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>#include <vec

2017-07-20 12:37:28 404

原创 C - Balls and Boxes CodeForces - 260C

题意:编号1-n个桶,每个桶里有ai个球,现在从下标为i的桶里,拿出所有的球,一直往右边放,放到n了,就再从0开始放,告诉你最后一个球放下的下标,要你输出所有桶的最初状态。 对于最初的代码,有一个没想到的bug是所有的数字都相同的情况下,下面的代码能够解决这样的问题,还是思考的不严密。思路:桶内球最少的那个下标,肯定是拿出球的桶。那么我们把所有从桶下标+1到桶的下标的球全部先拿出来,用T来保存,即T

2017-07-19 17:31:22 442

原创 B - Ancient Prophesy CodeForces - 260B

第二次比赛,我感受到了我心态的问题,还有思维的缺陷把。 容易钻进死胡同。 这道题题意很简单,就是要去找符合条件的字符串。/*If I get TLE , it is good.If I get AC,it's NICE !*/#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>#includ

2017-07-19 14:44:32 446

原创 Educational Codeforces Round 25

我是个爆零的菜鸡A - Binary Protocol A题题意一直没看清楚,一直就很难理解样例。 题目意思是把一个十进制数字转化成二进制数(不是平时的方法),用1来表示每一个数字,比如3=111 , 然后每两个数字之间加一个0. 这题找下规律就好了,如果有3个0就说明有2个0,如果末尾是0,再输出一个0./*If I get TLE , it is good.If I get AC,it's N

2017-07-17 15:49:23 248

原创 Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) ..C. Jury Marks

依旧是STL,用到了map,vector,unique。题意:一个人有一个额最初的成绩,告诉你N个评委的分数(顺序),每次评委打完分,都是最初的成绩加上前缀和,告诉你k个所听到的成绩(随意的顺序),问最初的分数可能是多少。 思路:先预处理出前缀和,穷举每个分数对应的可能最初分数(k[i]-前缀和),对应记录该分数的出现次数,如果==k(满足k个数都出现的情况)就符合条件,cnt++。 对于这道题必

2017-07-14 11:07:45 580

原创 Codeforces Round #423 Di v. 2(这可能是我写的最认真的一套题了,接下来会继续的)

能力有限,E题 数状数组没学 , F题没搜到题解 , 只能把思维题先过了,每天抽时间学算法,加油。 A: 自己模拟一下,如果你是餐厅经理会怎么做就很简单了。 `/If I get TLE , it is good.If I get AC,it’s NICE !/include include include include include include using namespace

2017-07-13 18:36:01 300

原创 Just a Hook HDU - 1698

这题属于区间更新的问题,和之前的题目不同的地方是该题是把值改变,而不是加起来,在原来代码的基础上改一改就差不多了/*If I get TLE , it is good.If I get AC,it's NICE !*/#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>using names

2017-07-09 14:48:36 290

原创 A Simple Problem with Integers POJ - 3468

/*If I get TLE , it is good.If I get AC,it's NICE !*/#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>using namespace std;typedef long long ll;const int MAXN=1e5+10;l

2017-07-09 10:46:12 235

原创 I Hate It HDU - 1754

这题涉及单点更新,相对来说比较容易把/*If I get TLE , it is good.If I get AC,it's NICE !*/#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>const int MAXN=1e6+100;struct t{ int l,r,v;

2017-07-09 10:41:35 270

原创 Codeforces Round #202 C - Mafia

这个题二分做,对于确定x更新次,我们可以确定是否能够更新,如果满足任意a[i]=x就满足情况。对x来说x越大,越快让每个人更新好,这样就有个单调性,就可以用二分来做。 这题也没想到二分做,做题要考虑多方面的解题思路把。说穿了还是题刷的不够多,理解的不够深刻。/*If I get TLE , it is good.If I get AC,it's NICE !*/#include #in

2017-07-07 20:39:42 494

原创 Codeforces Round #202 B:Color the Fence

贪心的题做的太少,碰到一点感觉都没有。 也是看了别人的题解才做。 对于此题,位数越长,那么数吧必定最大,那么cnt=v/mmin 就得到了最多的位数,那么最优的答案位数已经确定了。接下来就是相当于,我有cnt个空格,让你填1~9,9个数字,在满足限定条件的情况下,我要求最大值。这样子问题是不是一下变得很简单了呢? 限定条件是: 当前我取的数 对应的 值 不能超过总钱,并且选了这个数后,后面的位数

2017-07-07 14:32:10 291

原创 Prime Path POJ - 3126

bfs水题吧,这题没什么好说的,比较有价值的地方有两点。 ①:有关memset的问题  ② 把一个四位数,千、百、十、个位分离的方法#include #include #include #include using namespace std;const int MAXN = 10000;int   que[MAXN];int prime[MAXN];int v

2017-07-06 21:48:18 256

原创 敌兵布阵 HDU - 1166

看了一下午+一上午+一下午的 线段树 。   再看着别人的代码打了一下午。 终于过了, 没有系统的学习,让我有点举步维艰的感觉。 反正就坚持下去把,然后不停的寻找新的机会和方法。第一次做线段树,感觉很吃力,不过慢慢刷下来自然会熟悉题型,知道该怎么做。加油!下面我会尽可能的给出注释,一来如果有人看到这篇文章的话,可以理解我的思维,而来我也可以认认真真的分析好每一个函数,每一句话这么写的原因,也加深自

2017-07-06 21:43:57 258

转载 01背包模板、完全背包 and 多重背包(模板)

转载请注明出处:http://blog.csdn.net/u012860063模版就直接贴代码:01背包模板:[cpp] view plain copy print?/* 01背包问题 01背包问题的特点是,">每种物品仅有一件,可以选择放或不放。 01背包问题描述: 有N件物品和一个容量为V的背包。第i件物品

2017-07-05 10:11:00 310

转载 【转】背包九讲 好好学!

背包九讲目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 第八讲 泛化物品 第九讲 背包问题问法的变化 附:USACO中的背包问题 前言本篇文章是我(dd_engi)正在进行中的一个雄心勃勃

2017-07-04 20:02:02 247

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除