BestCoder Round 47 (hdu 5280 , hdu 5281 , hdu 5282 , hdu 5283)
1001 Senior’s Array
这题暴力枚举替换哪一个,然后dp就行。。O(n^2)的复杂度
这题一开始看错了,一直用线段树WA了好多发,好伤。
//author: CHC//First Edit Time: 2015-07-11 20:00#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <set>#include <algorithm>#include <limits>using namespace std;typedef long long LL;const int MAXN=1e+4;const int MAXM=1e+5;const int INF = numeric_limits<int>::m ...
SCU 4441 Necklace (2015四川省省赛F题)
题意很简单。就是求一个特殊序列,序列有三部分,非递减-最大-非递增
这题好奇怪。居然还限制代码长度,我用线段树提交总是失败。。。我用的树状数组才过的。还专门跑去学了下树状数组
代码:
//author: CHC//First Edit Time: 2015-06-24 21:56#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <set>#include <algorithm>#include <limits>using namespace std;typedef long long LL;const int MAXN=1e+5+100;const int INF = numeric_limits<int>::max ...
poj 1416 Shredding Company 二进制枚举
题意:
给两个数n和m,先要求把m切成几个分片,这几个分片之和为s,求max(s)<=n,若s不唯一,输出rejected,若s不存在,输出error,若s存在唯一,则按从左往右的顺序输出分片
例子:
n=50 m=12346
则s=1+2+34+6=43 并且是唯一的,所以输出43 1 2 34 6
n=12 m=111
则s=1+11=11+1=12 不唯一 输出rejected
若n=m 输出n n
若n=m=0 结束
代码:
//author: CHC//First Edit Time: 2015-06-25 14:18#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <set>#include <algorithm>#inc ...
SCU 4438 Censor (2015四川省省赛C题)
题意很简单,感觉这道题是陈题额。。
就是给两个字符串,A和B,把B中包含A的字符串都递归删除。
很明显的KMP了。。这题比赛的时候我推了很久。。因为字符串是弱项没有专门刷过。。。
代码:
//author: CHC//First Edit Time: 2015-06-23 11:56#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <set>#include <algorithm>#include <limits>using namespace std;typedef long long LL;const int MAXN=1000000*5 + 1000;const int INF = numeric_limits<in ...
SCU 4436 Easy Math (2015四川省省赛A题)
题意很简单就不说了。
无理数+任意数都为无理数。
代码:
//author: CHC//First Edit Time: 2015-06-23 11:50#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <set>#include <algorithm>#include <limits>using namespace std;typedef long long LL;const int INF = numeric_limits<int>::max();const LL LL_INF= numeric_limits<LL>::max();int main(){ int n; while( ...
SCU 4440 Rectangle (2015四川省省赛E题)
给一个n*m的方格,求周长小于等于k的矩形有多少个。
简单的思考题。
代码:
//author: CHC//First Edit Time: 2015-06-23 13:01#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <set>#include <algorithm>#include <limits>using namespace std;typedef long long LL;const LL LL_INF=numeric_limits<LL>::max();LL n,m,k;int main(){ //printf("%lld\n",LL_INF); while( ...
SCU 4444 Travel (2015四川省省赛I题)
感谢@AC_vitasoy 的提醒。。看了看有个比较严重的错误漏洞。。好吧。。这数据这么弱好无奈(其实是自己写的搓)。
题意很简单。这题是真的可以做出来的。但是用set TLE了。。赛后才做出来的。。就差这么一题。。
其实早就想到这种做法。但是懒得写。。以为不会过。。没想到真不科学。。强行打脸。
//author: CHC//First Edit Time: 2015-06-18 13:49#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <set>#include <algorithm>#include <limits>using namespace std;typedef long long LL;const int MA ...
SCU 4437 Carries (2015四川省省赛B题)
题意:定义h(x,y)是x+y进位的次数,比如h(1,9)=1 , h(1,99)=2
现给定n个数,求
注意到0≤ai≤109这样只需要枚举在第10k有多少个数产生进位就可以了。
注意到答案和顺序无关,只需要保证一对数不能计重就行,也就是说排序不影响结果。
那么枚举k,令s=10^k
每次对数组都mod s ,然后排序,现在已知a< s, b < s,现在已知a,求有多少个b使得a+b>=s
代码:
//author: CHC//First Edit Time: 2015-06-18 23:00#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <set>#include <algorithm>#include & ...
SCU 4439 Vertex Cover (2015四川省省赛D题)
题意:给一个有n个点m条边的无向图,染色某些点,使得任意一条边都有某个端点被染色,其实就是求最小点覆盖的点数。
(2<=n<=500,1 < m< n*(n-1)/2) 有个特殊的条件就是对于任意一条边e(u,v) min(u,v)<=30
比赛的时候没做出来。。考虑这题的时候注意到那个特殊条件,想到过枚举,但是只想到2^30那种二进制枚举肯定不行。。然后没有反应过来用搜索做。。
这题正解应该是dfs+剪枝
参考了这个blog:http://blog.csdn.net/u012127882/article/details/46547571
做法是枚举前30个点的情况,先依次枚举每一个点,然后判定这个点之前的点是否都能互相覆盖,然后再评估一下当前情况需要多少个点才能覆盖掉与之前点相连的边。二进制压缩状态,可以用位运算。
代码:
//author: CHC//First Edit Time: 2015-06-19 22:48#include <iostream>#include <cstdio>#include <c ...
位段
学网络编程的时候老湿说C语言有一个非常经典的东西:位段
然我大惊失色,这是什么鬼,然并不清楚啊。。
恩。不要奇怪。CPU是X86,小端方式