自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

代码艺术的道与术

个人笔记,欢迎交流,仅供参考

  • 博客(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 547

原创 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 627

原创 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 568

原创 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 603

原创 Codeforces Round #297 (Div. 2)(模拟+字符串+排序)

A.题目链接:点击打开链接解题思路:大意就是说奇数位给小写字母,偶数位给大写字母,然后小写对应钥匙,大写对应门,问最少消耗几把钥匙能打开所有门。简单模拟即可,初始化一个英文字母数组,如果遇到小写字母,我们把相应的计数器++,遇到大写,如果它对应的数组值不为0,那么我们将其--,否则购买一把钥匙。完整代码:#include #include #incl

2015-03-30 09:38:07 599

原创 POJ3723(邻接表+并查集+Kruskal)

题目链接:点击打开链接解题思路:根据相互之间的关系,可以转化一个无向图中最大权森林的问题。也就是把边权取反,然后用最小生成树求解。本题用邻接表存储,Kruskal求最小生成树。完整代码:#include #include #include #include #include #include #include #include #include

2015-03-28 13:25:05 1922

原创 POJ3255(次短路)

题目链接:点击打开链接解题思路:按照Dijkstra思想做的次短路,第一次用邻接表,注意题中是双向边并且节点的下标要分别-1.完整代码:#include #include #include #include #include #include #include #include #include using namespace std;typed

2015-03-27 20:54:42 1419

原创 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 727

原创 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 781

原创 Ural1110(数论)

题目链接:点击打开链接解题思路:用到数论知识,不然的话可能就要JAVA开大数·····鉴于我JAVA这么弱,还是用数学知识吧!(i * i * i * ····*i) % m ==( ( (i % m) * i % m) ····)%m。总之就是最后不要忘记循环结束后还要对m取一次余。完整代码:#include #include #include #inc

2015-03-07 19:34:29 695

原创 Ural1881(模拟)

题目链接:点击打开链接解题思路:处理起来比较麻烦,把长度用数组存起来,然后按照长度去取,去完之后看能分多少行,最后在取页数即可。精彩点在分行那。完整代码:#include #include #include #include #include #include #include #include #include using namespace s

2015-03-07 11:23:04 805

原创 Ural1876(贪心)

题目链接:点击打开链接解题思路:按照两个方面来贪:首先第一点,我们可以想到先将所有右脚的鞋子穿完,然后把所有剩余的右脚鞋子丢掉,最后穿够左脚即可。即b * 2 + 40;第二点,我们先穿39个右脚的鞋子,然后穿40个左脚的鞋子,之后我们把所有剩下的左脚鞋子丢掉,最后再花1s时间穿1个右脚鞋子。即39 * 2 + 40  + 2 * (a - 40) + 1;二者中取最大值即

2015-03-07 10:26:46 679

原创 Ural1585(细节)

题目链接:点击打开链接解题思路:很简单,但细节很坑。用getline之前要来个getchar把输入n后的回车吃掉,经过被加速器坑过这么多次后,我就决定以后还是不用加速器了。完整代码:#include #include #include #include #include #include #include #include #include usi

2015-03-05 13:59:40 436

原创 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 617

原创 Ural319(输出格式)

题目链接:点击打开链接解题思路:分别从右上角和左下角考虑,和姐姐跟我说的上一题差不多·····完整代码:#include #include #include #include #include #include #include #include #include using namespace std;typedef long long LL;

2015-03-04 20:26:06 716

原创 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 767

原创 Codeforces#295(Div.2)A、B(模拟+BFS)

解题报告链接:点击打开链接

2015-03-03 19:12:51 675

原创 Codeforces#294(Div.2)A、B、C(暴力+排序+技巧+数学)

解题报告链接:点击打开链接

2015-03-03 19:11:58 655

原创 Ural1313(输出格式)

题目链接:点击打开链接解题思路:本题考查输出格式,不用看描述,太长····直接看样例即可。PTQ告诉我一种方法,十分神奇。首先对于左上角(包括对角线)那些元素开一个数组存储,发现对于每个斜线上的元素,都以每行第一个元素为首,依次变换为(i - 1 , j + 1);同理。对于右下角哪些元素,从最右侧的每个元素为首,依次变换为(i + 1 , j - 1)。不同之处在于第二个数组

2015-03-03 15:17:46 714

原创 Ural1924(模拟+贪心)

题目链接:点击打开链接解题思路:在1到n之间插入+、-号,两个队伍都使用最优策略。看最后所得结果的奇偶性断胜负。贪心即可。贪的原则是首先明确这场是谁放置加减号,如果是第一个队伍,那么因为结果是偶数对他们有利,那么我们就尽可能使结果为偶。无论加减都不能使结果为偶数的话,那么索性直接加上即可。同理,对于第二支队伍,只要尽量使当前结果为奇数即可。完整代码:#inclu

2015-03-03 14:31:39 760

贪吃蛇 源码

适合C++初学者,实现简单的贪吃蛇游戏。里面都是源码,很容易看懂

2014-04-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除