乱七八糟の比赛
HumveeA6
这个作者很懒,什么都没留下…
展开
-
2018校赛网络预选赛
A. 水题,set查重从小到大扫描即可。#include<cstdio>#include<iostream>#include<algorithm>#include<set>using namespace std;int main(){ int t,i,j,k,n,num[200005]; cin>>...原创 2018-04-08 09:39:50 · 227 阅读 · 0 评论 -
Codeforces Round #484 (Div. 2)
A. 记得特判n=1时的情况即可。#include&amp;amp;lt;cstdio&amp;amp;gt;#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;algorithm&amp;amp;gt;#include&amp;amp;lt;cstring&amp;amp;gt;#include原创 2018-05-19 10:23:02 · 183 阅读 · 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 · 175 阅读 · 0 评论 -
Educational Codeforces Round 38 (Rated for Div. 2)
A. 签到模拟题#include<cstdio>#include<iostream>#include<string>#include<algorithm>using namespace std;bool isvowel(char c){ return c=='a'||c=='e'||c=='i'||c=='o'||c==...原创 2018-05-25 16:42:29 · 164 阅读 · 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 · 178 阅读 · 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 · 200 阅读 · 0 评论 -
Codeforces Round #481 (Div. 3)
比较简单的一场,除了个别题目需要小心一些细节之外都很裸很暴力; A. xjb乱搞就行。#include<cstdio>#include<iostream>#include<algorithm>#include<vector>using namespace std;bool appear[1005];int main(){ ...原创 2018-05-23 15:56:31 · 199 阅读 · 0 评论 -
2018 Spring Training 字符串合集
A.HDU3374 题目其实很简单,就是求给定串的最大最小表示法,然后求出现的次数的话,就把原串复制一遍接在串尾,然后跑一遍kmp求出现次数即可。#include&amp;amp;amp;lt;cstdio&amp;amp;amp;gt;#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt;#include&amp;amp;amp;lt;string&amp原创 2018-05-24 20:08:40 · 262 阅读 · 0 评论 -
Codeforces Round #489 (Div. 2)
A. 稍加思考就会发现其实只要知道其中非0的不同的数有多少个就可以了。#include<cstdio>#include<iostream>#include<set>using namespace std;int main(){ int n,i,j; set<int>s; cin>>n; ...原创 2018-06-20 21:31:05 · 236 阅读 · 0 评论 -
Codeforces Round #485 (Div. 2)
A.暴力乱搞 B.找规律,会发现(2,3)(2,4)以及有一个数是1的时候是需要特判的,其余情况下小的那个数的幂次方总是比较大。#include<cstdio>#include<iostream>using namespace std;int main(){ int x,y; cin>>x>>y; if(x=...原创 2018-05-30 16:15:59 · 337 阅读 · 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 · 236 阅读 · 0 评论 -
Codeforces 467 Div2 D
题目非常显然可以用记忆化搜索来做,但是有几个地方需要考虑。首先是每搜到一个点的时候需要知道这个点是谁在走,虽然说可以通过记录步数来判断,但是记忆化的时候需要分开来记忆,并不是很好办。解决方案是拆点,也就是把原来的点v拆成v<<1(P走这个点)和v<<1|1(V走这个点), 如果原图中有一条u->v的边,那么我们连两条边: (u,0)->(v,1) &...原创 2018-04-27 12:55:53 · 226 阅读 · 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 · 156 阅读 · 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 · 162 阅读 · 0 评论 -
Educational Codeforces Round 42 (Rated for Div. 2)
A. 记录一下前缀和,二分找一下超过一半的地方就行了。#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int main(){ int n,i,j,sum[200005]={0}; cin>>n; for(i=1...原创 2018-04-22 23:10:52 · 150 阅读 · 0 评论 -
选拔赛d
题意:有一个数列a,不超过500个数,均小于1e9,里面的数两两相加出来一个新数列b,然后把a,b混合成新数列c并把c打乱,告诉你c中数的个数以及每一个数,求a。 蒟蒻如我场上写了个爆搜…..emmmmm….. 正解应该基于如下想法考虑:我们可以将c从小到大排序,然后对于c中的每一个数,他要么是a中的数要么是能被a中两个数表示出来的;因此我们可以考虑每一个数是否能被现有的确定的a中的数表示出来...原创 2018-04-13 11:33:37 · 169 阅读 · 0 评论 -
Codeforces Round #475 (Div. 2) C
这题做起来感觉挺坑的。。。大概是不习惯这种数学题吧,也可能是这次前两题太简单了? anyway,首先如果暴力去算每一个数的值肯定是tle的,注意到这是以k为周期的,那么我们其实可以先算出前k个数的和,然后对于后面的数,每k个一组,每组的和都是上一组的和*(a^k/b^k),这里要求一波乘法逆元。1e9+9是质数所以费马小定理搞一下就行。然后这些和怎么加呢?如果一个个去加也是会tle的…所以就祭出...原创 2018-04-23 23:36:55 · 141 阅读 · 0 评论 -
Codeforces Round #477 (rated, Div. 2)
C. 题目主要考察阅读理解。 对于每一组问询,答案肯定是水平走一段+电梯/楼梯走一段组合而成。之前考虑的是 有没有可能做一段电梯然后走最后一截楼梯,不过从各种别人的代码来看似乎不需要考虑这点?似乎只要对于每个问询,把离起点最近的两个电梯/楼梯都二分抓出来算一下就行了。 特别注意要特判那些两点在同一层的坑爹情况…#include<cstdio>#include<algo...原创 2018-05-02 19:59:25 · 138 阅读 · 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 · 126 阅读 · 0 评论 -
Codeforces Round #482 (Div. 2)
B. 大意就是尽量弄成单个字母那种,这一定是最优的。我们首先扫一遍当前序列,找出当前情况下出现次数最多的子串(字母),然后如果除了这个字母以外,剩下的字母个数比n大的话,答案就是出现次数+n。 否则,如果替换剩下所有字母后n还剩偶数次,那么我们随便找一个字母消磨掉次数即可。否则的话,最后一个字母被替换掉我们不做替换,这样剩下偶数次,头两次内我们把那个没换的字母换成我们想要的字母,然后消磨掉...原创 2018-05-17 23:50:01 · 172 阅读 · 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 · 168 阅读 · 0 评论 -
Codeforces Round #462
A.题目不难,但是如果想要用一些巧妙的方法去做的话….会变得很麻烦,要非常仔细地考虑各种可能。然而题目数据范围是如此的小,所以还不如暴力枚举所有的乘积,然后把最大的乘积所在的那一组数全部删掉,也就是第一个人应该删掉那个数。然后在剩下的数里找最大的数即可。#include<cstdio>#include<iostream>#include<algorithm...原创 2018-05-31 23:55:23 · 190 阅读 · 0 评论