
奇思妙想
HumveeA6
这个作者很懒,什么都没留下…
展开
-
Educational Codeforces Round 40 E. Water Taps
这道题目的做法似乎非常奇妙。首先,对于每个温度,我们减去标准温度,只考虑差的部分。 然后,这样一来剩下的温度必然有正有负,那么,我们其实是希望知道是正的温度比较多还是负的温度比较多的,这样我们就可以把比较少的那种温度全部选上,然后贪心地选取比较多的那种温度,直到总温度为0 那么,就可以把总温度加起来算一遍,然后,如果总温度是负,也就是负温度比较多,那自然就没问题了。但如果是正温度比较多,那么...原创 2018-03-23 20:02:10 · 267 阅读 · 0 评论 -
Educational Codeforces Round 44 (Rated for Div. 2)
A. 注意到是全部放在黑格或者全部放在白格就可以,那就暴力枚举呗。把棋子按位置排序之后依次放在最左边空着的格子上统计一下就OK了。#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<set>#include<...原创 2018-05-22 21:02:31 · 249 阅读 · 0 评论 -
Codeforces Round #476 (Div. 2) [Thanks, Telegram!]
A.纯粹签到 B. 用两个前缀和维护一下每个位置的连续的可放位置的累计数(横向与竖直方向),然后枚举每个位置即可。#include<cstdio>#include<iostream>#include<string>#include<cstring>using namespace std;int cnth[105][105],cn...原创 2018-05-08 17:58:49 · 212 阅读 · 0 评论 -
Codeforces Round #479 (Div. 3)
A,B送分签到。 C的话暴力搞法直接排序,然后看看第k个数跟第k+1个数是不是一样就好了,但是一定要特判k=0||k=n的情况,wa了两发非常zz。当然想跑得更快可以二分搞搞。#include&lt;cstdio&gt;#include&lt;iostream&gt;#include&lt;algorithm&gt;using namespace std;int num[2000...原创 2018-05-08 15:50:26 · 210 阅读 · 0 评论 -
Codeforces 466 Div2
A签到题略过。 B虽然不难但仔细讨论起来还挺麻烦的,不想清楚容易GG。 #include<cstdio>#include<iostream>using namespace std;int main(){ long long n,k,a,b,i,j; cin>>n>>k>>a>>b; lo...原创 2018-04-27 13:30:34 · 283 阅读 · 0 评论 -
Codeforces Round #483 (Div. 2)
B. 全部扫一遍即可,注意每个点相邻的点可以有8个之多。#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;char map1[105][105];int move1[8][2]={-1,0,1,0,0...原创 2018-05-18 00:10:13 · 210 阅读 · 0 评论 -
Educational Codeforces Round 43 (Rated for Div. 2)
B. 找找规律就行,注意细节#include<cstdio>#include<iostream>#include<algorithm>using namespace std;typedef long long ll;int main(){ ll n,m,k,i,j,r,c; cin>>n>>m>...原创 2018-05-03 10:46:45 · 158 阅读 · 0 评论 -
Codeforces Round #477 (rated, Div. 2)
C. 题目主要考察阅读理解。 对于每一组问询,答案肯定是水平走一段+电梯/楼梯走一段组合而成。之前考虑的是 有没有可能做一段电梯然后走最后一截楼梯,不过从各种别人的代码来看似乎不需要考虑这点?似乎只要对于每个问询,把离起点最近的两个电梯/楼梯都二分抓出来算一下就行了。 特别注意要特判那些两点在同一层的坑爹情况…#include<cstdio>#include<algo...原创 2018-05-02 19:59:25 · 177 阅读 · 0 评论 -
选拔赛d
题意:有一个数列a,不超过500个数,均小于1e9,里面的数两两相加出来一个新数列b,然后把a,b混合成新数列c并把c打乱,告诉你c中数的个数以及每一个数,求a。 蒟蒻如我场上写了个爆搜…..emmmmm….. 正解应该基于如下想法考虑:我们可以将c从小到大排序,然后对于c中的每一个数,他要么是a中的数要么是能被a中两个数表示出来的;因此我们可以考虑每一个数是否能被现有的确定的a中的数表示出来...原创 2018-04-13 11:33:37 · 203 阅读 · 0 评论 -
Codeforces 468 Div2
A.签到,没啥好说#include<cstdio>#include<iostream>using namespace std;int main(){ int a,b,i,total=0,mid; cin>>a>>b;mid=(a+b)>>1; if((a+b)&1){ in...原创 2018-04-22 21:35:18 · 196 阅读 · 0 评论 -
Codeforces Educational Codeforces Round 41
A,B签到题略过。 C. Chessboard 其实这题的思路很简单,但是如果没想到的话还是挺难的….简单来说,我们并不需要去具体考虑4块中的每一块具体放在哪里——因为对每一块来说,他的最终状态只有两种可能,并且这个可能是由它的左上角的小方块的颜色决定的;那么我们其实只要计算出每一块转换为两种状况所需要重新染色的次数,然后显然左上角与右下角的块状况相同,另两块状态也相同,那我们在两种状况中选择...原创 2018-04-05 20:21:17 · 241 阅读 · 0 评论 -
CF473 DIV2 D. Mahmoud and Ehab and another array construction task
本题基于一种贪心的思路,即:能不改就不改,但是一旦改了以后,后面的都改;具体而言,就是从前往后扫,如果当前位置的数不与前面的数冲突的话,那么我们就不改动他。但是,一旦有一个数冲突了,根据题意我们肯定要换一个更大的数,那么此时整个序列肯定就比原序列大了,那么后面的数我们肯定都要换尽可能小的。 同时,还要考虑的一个问题是,如何保证后面选的数不与前面已经选过的数冲突。方法非常暴力:我们预处理出每个数的...原创 2018-04-04 16:36:19 · 406 阅读 · 0 评论 -
CF 472D Riverside Curio
一直以为是dp或者搜索之类的,搞了半天发现并不是qwq….这道题其实应该从一个比较整体的角度来考虑, 首先,我们要最小化每天的d,因为每天的划线总数是ti=di+mi+1,因此实际上我们就是要最小化每天的t。 很显然的,t必须满足几个条件:1.t[i]>=t[i-1],总不可能线越划越少吧。2.t[i]>=m[i]+1,这也是废话 3.t[i]>=t[I+1]-1,这是因为...原创 2018-03-28 20:12:20 · 319 阅读 · 0 评论 -
Codeforces Round #474
A.注意两个问题,一个是必须是排好序,也就是abc位置不能颠倒,其次就是a,b不能没有。 利用is_sorted可以快速解决第一个问题。#include<cstdio>#include<iostream>#include<string>#include<algorithm>using namespace std;int main(...原创 2018-04-09 16:37:40 · 192 阅读 · 0 评论 -
Educational Codeforces Round 40 G. Castle Defense
题目要求最大化最小值,因此肯定要二分答案了; 那么二分了之后怎么检查呢?对于从左往右的第i个城堡,如果它的防御值不满足二分的x的话, 那么考虑到他左边的城堡都满足了这个x值,因此弓箭手肯定加在i+rad上最佳。 然后怎么扫,一开始以为要用线段树或者树状数组维护前缀和,然后都tle GG了 后来发现其实拿两个指针,一个指向左边,一个指向右边,维护这一段的和即可,每次检查复杂度大概是线性的,可...原创 2018-03-24 20:54:11 · 271 阅读 · 0 评论 -
Educational Codeforces Round 40 C. Matrix Walk
挺有技巧的一道题….需要考虑的细节不少,但是如果够机智,代码可以非常简单 注意到只能上下或左右走,而左右走时,绝对值差必为1;上下走时,绝对值差可能不为1,但一定相等,且为一行的元素数。 如此,只要判断序列中所有相邻数的绝对值差是不是只有两种可能。 但是,有一种特殊的情况:从一行末尾走到上/下一行开头是不合法的。这种情况需要特判。 由于题目并不要求最小的x,y,所以可以直接令x=10^9,...原创 2018-03-24 17:21:04 · 228 阅读 · 0 评论 -
Codeforces Round #487 (Div. 2) C. A Mist of Florescence
构造的思路比较暴力,如图。 但是代码其实不太好写#include<cstdio>#include<iostream>using namespace std;int main(){ int i,x,y,c[4]; for(i=0;i<4;i++)cin>>c[i],c[i]--;//预留一个给大的包围块 cout&...原创 2018-07-10 10:07:40 · 253 阅读 · 0 评论