- 博客(190)
- 收藏
- 关注
原创 https://www.hackerrank.com/challenges/die-hard-3/problem
仔细看看还真是这么回事,大可以把打水看成是往答案ans中加一瓶水,而而倒水则可以看成是把答案ans减掉一瓶水,而从一罐到另一罐的水不关,倒掉的话实际上就和这个线性组合类似了:m = ax + by,如果说y为负数,可以类比上面的思想,实际上相当于往a中倒水然后倒到b中,然后把b中的水满的倒掉y罐,正数的话类似即可。#include <cstdlib>#include <io...
2018-07-14 21:48:58
709
原创 http://codeforces.com/problemset/problem/478/C
3种颜色涂桌子,要用到3种颜色,且3种的数量有限,不能只涂一种颜色,求最多能涂的数量。 可以确定的是上界为(a + b + c) / 3。 由题意,能涂的方式只有2种:1,1,1。2,1,0。 而3,0,0这种方式是不被允许的,那么我们就应该尽量避免发生这样的情况。而发生这样的情况的状态是只有1种颜色由剩余,其他两种都已用完,于是很容易想到把最开始数量较多的颜色和数量较少的颜色按照第二种方法...
2018-07-11 20:00:17
357
原创 http://codeforces.com/problemset/problem/265/B
被题意秀了一脸,实际上第三个操作只能往后面的树去跳。#include <iostream>#include <cstdio>#include <list>#include <stack>#include <queue>#include <cstdlib>#include <set>#includ
2018-07-10 17:19:04
333
原创 http://codeforces.com/problemset/problem/596/B
一路递推过去就好了。#include <iostream>#include <cstdio>#include <list>#include <stack>#include <queue>#include <cstdlib>#include <set>#include <map&
2018-07-10 15:20:10
302
原创 http://codeforces.com/problemset/problem/779/C
根据差值按大小顺序排,选出前k个,其他的选两个值中较小的即可。#include <iostream>#include <cstdio>#include <list>#include <stack>#include <queue>#include <cstdlib>#include <set>#in
2018-07-10 15:10:50
256
原创 http://codeforces.com/problemset/problem/389/A
实际上这题时GCD的。OK,想了想证明过程: 粗糙的归纳法: 1.2个数,显然就是GCD(a1,a2) 2.n个数,按此操作为GCD(a1,a2,a3…,an) 3.n+1个数,任取n个数按此操作得到的最小数GCD(a1,a2..,an),对第n+1个数a(n+1),按此操作则必定为GCD(a1,a2….,an,an+1) 归纳完毕。 当然上述肯定会有疑惑的地方,想必第3步时最令人困惑...
2018-07-10 10:06:51
258
原创 http://codeforces.com/problemset/problem/4/B Before an Exam
大可以直接先加最小值然后去逐渐逼近目标值。#include <iostream>#include <queue>#include <cstdio>using namespace std;int main(){ int d,sumTime,l[35],r[35],a[35]; cin >> d >> sumTi...
2018-06-21 16:41:21
268
原创 http://codeforces.com/problemset/problem/276/B Little Girl and Game
可以逆推一下通过偶数长串来达到回文串和通过奇数长串来达到回文串的前提串,这个前提串必定也一定是回文串了,因此如果初始时不是回文串,则剩下的只需要比较串长即可。#include<iostream>#include<queue>#include<string>#include<cstring>#include<cstdio>#i...
2018-06-16 19:08:53
266
原创 http://codeforces.com/problemset/problem/779/B Weird Rounding
从低位往高位扫如果非0则删除,否则记录0的个数,如果达到k则不再遍历,最后判断是否0的个数足够不够则要求最后只留下一个0.#include<iostream>#include<queue>#include<string>#include<cstring>#include<cstdio>#include<algorith...
2018-06-16 12:22:40
254
原创 http://codeforces.com/problemset/problem/401/C Team
构造法构造一下,分的情况有多种但是不难想到具体还是看代码吧。#include<iostream>#include<queue>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;int main(){ // m - 2*t...
2018-06-16 12:13:16
233
原创 http://codeforces.com/problemset/problem/557/A Ilya and Diplomas
给定三个数a,b,c的区间范围,使得a,b,c最大且满足a + b + c = n,另外a,b,c取最值得优先级为a >b > c.#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#...
2018-06-15 23:33:07
305
原创 http://codeforces.com/problemset/problem/978/B File Name
扫一遍,记录x的个数,如果遇到不是x的字符判断已有x的个数即可。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include <stack>#include <queue...
2018-06-15 23:23:36
197
原创 http://codeforces.com/problemset/problem/651/B Beautiful Paintings
实际上就是给n个数形成多个递增的链,如果是相等的数自然不放在一起,因为这样是无法贡献值的。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include <stack>#incl...
2018-06-15 23:16:30
214
原创 http://codeforces.com/problemset/problem/525/A Vitaliy and Pie
从左往右扫过去,没钥匙的话就把答案加一,有钥匙就存一下。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include <stack>#include <queue>
2018-06-15 23:06:25
221
原创 http://codeforces.com/problemset/problem/659/C Tanya and Toys
对a排个序,然后从1往后加即可,当然a中有的自然不加了。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include <stack>#include <queue>
2018-06-15 14:23:03
205
原创 http://codeforces.com/problemset/problem/835/B he number on the board
交的有一个居然一直卡在case 10 不跑了??? 题意有点难懂,就是说黑板上有一个数字其位数和不小于k,有一个人通过改变各个位把它改成了n,那么求这个数使得其位数和n各个位数不同的最小值,也就是说要让a和n各个位数不同的数量最小,而且这个a的位数和不小于k,就把n中小的位数去变成9就好了。#include <iostream>#include <string>#...
2018-06-15 14:05:54
207
原创 http://codeforces.com/problemset/problem/785/B Anton and Classes
记录两个组内区间l值的最小最大值,r值得最小最大值即可。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include <stack>#include <queue>
2018-06-14 17:56:42
202
原创 http://codeforces.com/problemset/problem/743/A Vladik and flights
由于只有2个机场,如果a,b不在同一个机场,那么必定可以从a所在机场走到b所在机场,或者通过a所在机场的其他飞机的位置走到b所在机场,而最小步数必然为1。#include <iostream>#include <cstdio>#include <cstdlib>#include <queue>#include <algorith...
2018-06-14 15:33:24
233
原创 http://codeforces.com/problemset/problem/946/A Partition
负数则加入C,正数加入B即可#include <iostream>#include <cstdio>#include <cstdlib>#include <queue>#include <algorithm>#include <cstring>using namespace std;typedef long ...
2018-06-14 15:22:00
167
原创 http://codeforces.com/problemset/problem/545/B Equidistant String
只有s,t对应i位置不同时,才会产生一个距离差,于是想到每次先增大s的距离后增大t的距离,最后判断一下两个距离是否相等即可。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include &l...
2018-06-14 12:50:22
242
原创 http://codeforces.com/problemset/problem/609/A USB Flash Drives
让尽量大的去存即可。#include <iostream>#include <algorithm>using namespace std;int a[1005];int main(){ int n,m,x; cin >> n >> m; for(int i = 0;i < n;++i){ c...
2018-06-14 12:43:18
195
原创 http://codeforces.com/problemset/problem/285/C Building Permutation
排序后将从小到达往1-n去进行所谓的归位,如何证明这个是最优的呢。 该贪心算法可以做如下描述: A是一个长度为n的从小到大排序的序列a1 <= a2 <= a3 <= … <= an,初始时集合S为空,每一次贪心选择A中最小的,且未加入集合S的下标k,将其归位到|S| + 1的位置,得到权值abs(a[k] - k),将k加入到S中。 下面利用Exchange Arg...
2018-06-14 07:27:52
188
原创 http://codeforces.com/problemset/problem/903/A Hungry Student Problem
可以假定这样的数字x = 7a + 3b,那么取t = x % 7,t 在[0,6]范围内,t = 3k时自然可行,t=其他情况时讨论即可。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#in...
2018-06-14 06:21:17
237
原创 http://codeforces.com/problemset/problem/447/B DZY Loves Strings
插入最大权值放最后自然是最好的。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include <stack>#include <queue>#define MAX
2018-06-13 23:38:04
214
原创 http://codeforces.com/problemset/problem/3/A Shortest path of the king
启发式搜索写一写就搞定了,因为不存在障碍物所以每一次走的都必定是最短路中的。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include <stack>#include <...
2018-06-13 23:30:24
166
原创 http://codeforces.com/problemset/problem/538/B Quasi Binary
为了尽可能减少数的个数,那么就要尽可能减少对于每一个位仍然还留有的个数,于是从高位开始,尽可能减少比当前位小的位数中数的大小。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include &...
2018-06-13 22:39:40
322
原创 http://codeforces.com/problemset/problem/545/C Woodcutters
别的不管,能砍则砍。你问为啥这样可以搞到最优解??? 可以这样考虑,一开始第一个位置的树肯定往左砍,接下来考虑第二棵树,往左砍的话需要判断是否会不合法,如果合法往左砍当然好咯,否则的话,看往右砍行不行,如果行则砍下去,你说不砍行不行??如果不砍肯定不能达到最优解咯,因为不砍,它右边那棵树有可能砍不掉或者往右砍影响到更右边的树能不能砍,所以说,我宁愿把这棵树先砍了,它右边的树能不能砍另外考虑。其实...
2018-06-13 20:03:15
246
原创 http://codeforces.com/problemset/problem/258/A Little Elephant and Bits
无论如何都是要删除1个字符的,首先可以想到最好是去删0,如果没有0的话就删1即可,如果有0删最最高位的0,使得其他位的移动最少。#include <iostream>#include <cstdio>#include <algorithm>#include <string>using namespace std;int main(){...
2018-06-13 15:00:42
173
原创 http://codeforces.com/problemset/problem/385/A Bear and Raspberry
题意可能难懂,其实就是一个人可以借一个东西,需要付出c,但是可以先欠着,然后在每一天卖出去有不同的价格,但在s天卖出必定在s+1天买进,求最大所得,可以不去借。#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int main(){ in...
2018-06-13 14:41:20
163
原创 http://codeforces.com/problemset/problem/508/B Anton and currency you all know
交换最后一位与其他的某一位使得此数为偶数且最大,首先要是偶数必定其某一位是偶数,其次如果要达到最大,那么如果这最后一位比高位中某个偶数位大的话就直接交换就可以得到最大的了,否则的话,如果找不到这样小的偶数位,那就和最低的那一个偶数位交换。#include <iostream>#include <string>#include <cstdio>#in...
2018-06-13 12:21:01
151
原创 http://codeforces.com/problemset/problem/570/B Simple Game
可以这样考虑,相对m而言,a有三种取值情况,a>m,a=m,a#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include <stack>#include <que
2018-06-12 23:21:58
179
原创 http://codeforces.com/problemset/problem/34/B Sale
这个题真的无聊了,排个序取负的然后最后结果取绝对值。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include <stack>#include <queue>#
2018-06-12 22:53:52
167
原创 http://codeforces.com/problemset/problem/670/A Holidays
容易想到,先排两天假期在前面可以产生最大的假期,注意最小的假期,也需要注意最后不足一周的情况。#include <iostream>#include <string>#include <cstdio>#include <algorithm>#include <vector>#include <stack>#in...
2018-06-12 22:32:03
144
原创 http://codeforces.com/problemset/problem/919/A Supermarket
部分背包。#include <bits/stdc++.h>using namespace std;typedef long long ll;#define PI (M_PI)#define INF (0x3f3f3f3f)#define MOD (1000000007)#define EPS (1e-12)#define MAX (1000000)#define L...
2018-06-12 20:55:43
168
原创 http://codeforces.com/problemset/problem/546/B Soldier and Badges
注意超过n的情况,因此我把上界设置为10000#include <bits/stdc++.h>using namespace std;typedef long long ll;#define PI (M_PI)#define INF (0x3f3f3f3f)#define MOD (1000000007)#define EPS (1e-12)#define MAX (...
2018-06-12 20:49:54
203
原创 http://codeforces.com/problemset/problem/804/A Find Amir
从i到j花费(i + j) mod (n + 1),花费为0自然是最好的情况。因为(i+j) 的取值区间在[0,n-1]的范围内,对于1而言最好的走法是走到n去,花费为0,此时为了走完剩下的n-2座学校,必须从n或者1出发走到另一所学校去,可以发现无论怎么走都必定产生花费,为了使花费最少,自然选择花费为1的情况,那么可以从n走到2去,而此时又可以发现2可以走到9花费为0,以此推下去,每产生一个0花...
2018-06-12 20:36:00
176
原创 http://codeforces.com/problemset/problem/320/A Magic Numbers
尽量去匹配更长的模式串,然后滑动匹配点,如果发现匹配长为0则无法匹配下去。#include <bits/stdc++.h>using namespace std;typedef long long ll;#define PI (M_PI)#define INF (0x3f3f3f3f)#define MOD (1000000007)#define EPS (1e-12)...
2018-06-12 20:18:35
159
原创 http://codeforces.com/problemset/problem/381/A Sereja and Dima
由于策略是一定的,并且注意到每个数字都是不同的因此只需模拟即可。#include <bits/stdc++.h>using namespace std;typedef long long ll;#define PI (M_PI)#define INF (0x3f3f3f3f)#define MOD (1000000007)#define EPS (1e-12)#def...
2018-06-12 20:12:43
248
原创 http://codeforces.com/problemset/problem/545/D Queue
首先从小到达排尝试让更少的人不失望,但是如果有失望的可以把直接排到队尾去,这样可以使得尽可能多的人不失望,因为失望的人肯定会失望,因为前者已经是最短的时间了,不可能让他不失望了。#include &lt;iostream&gt;#include &lt;string&gt;#include &lt;cstdio&gt;#include &lt;algorithm&gt;
2018-06-12 20:00:42
165
原创 http://codeforces.com/problemset/problem/766/B Mahmoud and a Triangle
排个序,判断三个点是否能组成非退化三角形#include <bits/stdc++.h>using namespace std;typedef long long ll;#define PI (M_PI)#define INF (0x3f3f3f3f)#define MOD (1000000007)#define EPS (1e-12)#define MAX (100...
2018-06-12 20:00:06
251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人