- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 hihocoder1014(字典树)
题目连接:点击打开链接解题思路:字典树模板题。论一套靠谱模板的重要性!!!完整代码:#include #include #include #include #include #include #include #include using namespace std;typedef unsigned long long LL;const int
2015-03-31 21:03:06 544
原创 hiho一下 第三十九周(逆序数)
题目连接:点击打开链接解题思路:逆序数模板题。注意此题坑点在于数据大,开成unsigned long long完整代码:#include #include #include #include #include #include #include #include using namespace std;typedef unsigned long l
2015-03-31 17:32:59 626
原创 HDU3068(最长回文子串manacher算法)
题目连接:点击打开链接解题思路:manacher算法模板题。完整代码:#include #include #include #include #include #include #include #include using namespace std;typedef unsigned long long LL;const int MOD = i
2015-03-31 17:03:56 567
原创 hihocoder1032(最长回文子串manacher算法)
题目连接:点击打开链接解题思路:manacher算法的模板题。完整代码:#include #include #include #include #include #include #include #include using namespace std;typedef unsigned long long LL;const int MOD =
2015-03-31 16:50:41 597
原创 Codeforces Round #297 (Div. 2)(模拟+字符串+排序)
A.题目链接:点击打开链接解题思路:大意就是说奇数位给小写字母,偶数位给大写字母,然后小写对应钥匙,大写对应门,问最少消耗几把钥匙能打开所有门。简单模拟即可,初始化一个英文字母数组,如果遇到小写字母,我们把相应的计数器++,遇到大写,如果它对应的数组值不为0,那么我们将其--,否则购买一把钥匙。完整代码:#include #include #incl
2015-03-30 09:38:07 595
原创 POJ3723(邻接表+并查集+Kruskal)
题目链接:点击打开链接解题思路:根据相互之间的关系,可以转化一个无向图中最大权森林的问题。也就是把边权取反,然后用最小生成树求解。本题用邻接表存储,Kruskal求最小生成树。完整代码:#include #include #include #include #include #include #include #include #include
2015-03-28 13:25:05 1920
原创 POJ3255(次短路)
题目链接:点击打开链接解题思路:按照Dijkstra思想做的次短路,第一次用邻接表,注意题中是双向边并且节点的下标要分别-1.完整代码:#include #include #include #include #include #include #include #include #include using namespace std;typed
2015-03-27 20:54:42 1415
原创 POJ2769(同余 + 暴力)
题目链接:点击打开链接解题思路:求组内最小的m使得组内各个数对m求余所的值均不同。暴力的判断吧。发现一个有趣的规律,G++省时间废内存,C++费时间省内存。另外此题的数组不宜开的过大,我开了个10^6的数组,接下来各种超时,换成10^5就过了。另外,我试了下用set结果还是超时。完整代码:#include #include #include #includ
2015-03-24 19:15:17 1107
原创 HDU3461(并查集)
题目链接:点击打开链接解题思路:一道看不出来是并查集的并查集题,做来做去还是觉得九野的题集不错。题目大意就是有一个n位的密码串,每位可能是a到z间的任意一个字母。m行输入区间[ l , r],代表这个区间可以同时做+1操作,如果一组密码通过有限次增加变成另一组密码,那么我们认为这两组密码是相同的。求在m个区间下有多少种不同的密码。暴力来看是求26^n,当有cnt个不同区间加进来
2015-03-17 14:59:21 725
原创 Ural1349(费马大定理)
题目链接:点击打开链接解题思路:费马大定理······Orz!!!膜拜神学。当n== 1时,输出1 、2、 3;当n==2时,输出3 、4 、5;当n >= 3时,无解。完整代码:#include #include #include #include #include #include #include #include #include usin
2015-03-07 20:50:40 779
原创 Ural1110(数论)
题目链接:点击打开链接解题思路:用到数论知识,不然的话可能就要JAVA开大数·····鉴于我JAVA这么弱,还是用数学知识吧!(i * i * i * ····*i) % m ==( ( (i % m) * i % m) ····)%m。总之就是最后不要忘记循环结束后还要对m取一次余。完整代码:#include #include #include #inc
2015-03-07 19:34:29 694
原创 Ural1881(模拟)
题目链接:点击打开链接解题思路:处理起来比较麻烦,把长度用数组存起来,然后按照长度去取,去完之后看能分多少行,最后在取页数即可。精彩点在分行那。完整代码:#include #include #include #include #include #include #include #include #include using namespace s
2015-03-07 11:23:04 804
原创 Ural1876(贪心)
题目链接:点击打开链接解题思路:按照两个方面来贪:首先第一点,我们可以想到先将所有右脚的鞋子穿完,然后把所有剩余的右脚鞋子丢掉,最后穿够左脚即可。即b * 2 + 40;第二点,我们先穿39个右脚的鞋子,然后穿40个左脚的鞋子,之后我们把所有剩下的左脚鞋子丢掉,最后再花1s时间穿1个右脚鞋子。即39 * 2 + 40 + 2 * (a - 40) + 1;二者中取最大值即
2015-03-07 10:26:46 677
原创 Ural1585(细节)
题目链接:点击打开链接解题思路:很简单,但细节很坑。用getline之前要来个getchar把输入n后的回车吃掉,经过被加速器坑过这么多次后,我就决定以后还是不用加速器了。完整代码:#include #include #include #include #include #include #include #include #include usi
2015-03-05 13:59:40 433
原创 Ural1225(数学)
题目链接:点击打开链接解题思路:上来先把n 分别为1、2、3、4的情况大致列了一下,发现n == 1时结果为2,n== 2时结果为2,n == 3时结果为4,n== 4时结果为6.于是大胆的猜想ans[i] = ans[i - 1] + ans[i - 2],但是WA在#12。把预处理表打出来看了看······当n达到45时,结果都溢出了,并且此题long long存不下,果断
2015-03-05 13:18:59 614
原创 Ural319(输出格式)
题目链接:点击打开链接解题思路:分别从右上角和左下角考虑,和姐姐跟我说的上一题差不多·····完整代码:#include #include #include #include #include #include #include #include #include using namespace std;typedef long long LL;
2015-03-04 20:26:06 714
原创 Ural1209(数学推导)
题目链接:点击打开链接解题思路:此题甚好。推导公式,首先观察序列110100100010000·····,我们把为1的下标单独拿出来看。依次为1、2、4 、7、 11·····,可以分解为1+(0) 、1+(0+1)、1+(0+1+2)、1+(0+1+2+3)、1+(0+1+2+3+4),可以推导出规律1 + x * (x - 1) / 2。那么对于每个n,我们只要判断是否存在
2015-03-04 20:05:15 764
原创 Ural1313(输出格式)
题目链接:点击打开链接解题思路:本题考查输出格式,不用看描述,太长····直接看样例即可。PTQ告诉我一种方法,十分神奇。首先对于左上角(包括对角线)那些元素开一个数组存储,发现对于每个斜线上的元素,都以每行第一个元素为首,依次变换为(i - 1 , j + 1);同理。对于右下角哪些元素,从最右侧的每个元素为首,依次变换为(i + 1 , j - 1)。不同之处在于第二个数组
2015-03-03 15:17:46 713
原创 Ural1924(模拟+贪心)
题目链接:点击打开链接解题思路:在1到n之间插入+、-号,两个队伍都使用最优策略。看最后所得结果的奇偶性断胜负。贪心即可。贪的原则是首先明确这场是谁放置加减号,如果是第一个队伍,那么因为结果是偶数对他们有利,那么我们就尽可能使结果为偶。无论加减都不能使结果为偶数的话,那么索性直接加上即可。同理,对于第二支队伍,只要尽量使当前结果为奇数即可。完整代码:#inclu
2015-03-03 14:31:39 759
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人