自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Noooooorth的专栏

Two steps from heaven.

  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU 1568 Fibonacci(科学计数法+对数)

输出斐波那契数列第n项的前四位,如果不足四位则直接输出。

2015-08-27 19:58:28 1391 1

原创 HDU 1005 Number Sequence(矩阵快速幂)

f(1)=f(2)=1,f(n)=(A*f(n-1)+B*f(n-2))%7,输入A,B和n,输出f(n)。

2015-08-27 19:48:25 1257 1

原创 ACdream 1216 Beautiful People(二路最长上升子序列 O(nlogn) )

从n个人中挑选出若干人,使得这些人中的任何一个人的两种属性同时大于或同时小于其他人。输出最多能挑选出的人的个数和编号。

2015-08-27 19:44:47 1307 1

原创 ACdream 1420 High Speed Trains(容斥原理+高精度)

n个点,每个点至少连一条边,求方案数。

2015-08-26 15:52:26 1524 3

原创 ACdream 1408 "Money, Money, Money"(找规律)

给出一个数x,输出两个数a,b,要求任意个a与任意个b不能组合出x,但能组合出x之后的所有正整数(多种答案只要输出任意一种)。

2015-08-26 15:44:16 2908

原创 HDU 3336 Count the string(KMP+DP)

给出一个字符串,输出每个前缀在原串中出现的次数总和。

2015-08-26 15:41:40 1778

原创 HDU 4300 Clairewd’s message(KMP)

首先给出26个字母,明文按照这个表转换成对应密文。然后给一个字符串,这个字符串前一段是完整的密文,后一段是明文,明文可能不完整,也可能根本就没有给出明文。然后让你输出完整的密文明文字符串,同时尽可能短。

2015-08-26 15:37:56 2003 1

原创 HDU 4512 吉哥系列故事――完美队形I(最长公共上升子序列)

从n个人中挑出部分人组成一个队列,使得他们在原队列中的相对顺序不变,同时使得H[1]<H[2]<...<H[mid]<H[mid+1]<...<H[m],H[1]=H[m],H[2]=H[m-1]...

2015-08-26 15:33:21 1726

原创 HDU 4712 Hamming Distance(随机数)

求n个十六进制数两两异或的结果中最少的1的个数

2015-08-19 20:31:27 1140 2

原创 Vijos 1164 曹冲养猪(中国剩余定理)

找出最小的x使得x%m[0]=r[0],x%m[1]=r[1]....

2015-08-19 10:39:01 2033

原创 NBUT 1222 English Game(trie树+DP)

给出一个目标字符串和n个字符串及其对应的权值,求用这些字符串中的1个或多个组成目标字符串的最大权值。

2015-08-19 09:46:29 2108

原创 CodeForces 300C Beautiful Numbers(乘法逆元/费马小定理+组合数公式+快速幂)

给出a和b,如果一个数每一位都是a或b,那么我们称这个数为good,在good的基础上,如果这个数的每一位之和也是good,那么这个数是excellent。求长度为n的excellent数的个数mod(1e9+7)。ps:1e9+7是一个质数。

2015-08-18 00:05:21 3288

原创 HDU 1796 How many integers can you find(容斥原理+二进制/DFS)

求n以内能够被所给的集合中的数整除的数的个数。

2015-08-17 23:58:38 2113

原创 CSU 1542 Flipping Parentheses(线段树)

给出一个长度为n的已经匹配的括号字符串,然后有Q次操作,每次操作会翻转一个括号,让你翻转最左边的某个括号使得整个字符串再次匹配。

2015-08-17 23:54:52 1968

原创 POJ 1061 青蛙的约会(拓展欧几里得)

2只青蛙分别站在x和y处,每次分别能跳m和n米,维度线总长L,求跳了几次后会碰面,若永远不能碰面,则输出-1.

2015-08-17 23:50:26 1808

原创 POJ 2828 Buy Tickets(线段树)

n个人站队(可以插队),Pi代表i插队时他前面的人数,Vi代表i的标记,最终输出的是最终队伍的序列。

2015-08-17 23:47:33 1720

原创 POJ 3268 Silver Cow Party(dijkstra+矩阵转置)

n头牛要到达某一个点X,然后再返回到原来的位置。同时要求对于每头牛路径必须是最短的,而且去的路和回来的路不一样。求这些牛所花费的最长时间。

2015-08-16 14:10:50 1902

原创 POJ 1797 Heavy Transportation(二分+并查集/kruskal)

有n个城市,m条路,从1走到n的道路的最大承载量,最大承载量就是走过的路的承载量的最小值。呵呵呵~~~再次举个栗子:假设n=3,m=3,连接1与2的城市的路的承载量为3,连接1与3的承载量是4,连接2与3的承载量是5,那么从1到3有2种走法:(1)1-2-3,承载量依次是3,5,那么最大承载量就是5;(2)1-3,承载量是4,最大承载量也是4,所以答案是4。

2015-08-16 14:08:17 2027

原创 POJ 1062 昂贵的聘礼(dijkstra)

一个人为了娶酋长的13岁的女儿(雾),需要支付给酋长一定的钱,但是酋长提出如果他能买来另外某个人的东西,酋长会给予他一定的优惠(如起初酋长要求10000金币,但是酋长说:“如果你能买来2号的东西,我就只要求你付8000金币”,而2号的东西只需要1000金币,所以可以只花费9000金币)。但是题目限制了整个交易过程中的等级,假如你与一个等级过高的人交易过,那么你之后就不能与某些等级过低的人交易。注意:等级差距限制是对于整个交易过程而言的,不是对于每次交易。如:等级差距限制是2,那么如果之前与等级为4的人交易过

2015-08-16 14:04:38 1744

原创 POJ 1182 食物链(并查集)

这道题《挑战程序设计》上有详细讲解。对于每一只动物,我们创建3个元素:i-1,i-2,i-3。同时使用一个N*3的并查集维护。i-1表示i是1物种。并查集中每个集合中的元素表示组内情况同时发生或者同时不发生。那么对于2种输入,我们可以按照如下的方式维护:对于a和b是同一类:合并a-1与b-1,a-2与b-2,a-3与b-3;对于a吃b:合并a-1与b-2,a-2与b-3,a-3与b-1。合并前要先检查是否矛盾,如对应a与b同一类,如果a-1和b-2在同一集合中,则为假话。

2015-08-16 00:07:42 1768

原创 HDU 4825 Xor Sum(trie树+贪心)

根据异或的性质(相同得0,不同得1),如果要使得异或的值最大,那么s与k转化为二进制后要有尽量多的高位不同。这里用到了贪心的思想,我们优先考虑高位,使得高位相反,其次再考虑低位,这样才能使得异或的值最大。同时题目给出的内存比较大,然后就可以用trie树了。我们要建一个32层的二叉树,每一层的节点的两个子节点分别表示0和1,每次查询从高到低依次走相反的路径。

2015-08-15 23:25:58 1787

原创 HDU 1247 Hat’s Words(trie树+STL)

首先用map标记字符串是否出现过,然后按照长度从小到大排序。然后我们就可以从小到大将字符串加入到trie树中,当遇到节点不存在的情况,就把从这一位开始的字符串取出,判断这些字符串是否存在。举个栗子:a,hat,ahat这3个字符串,首先将a和hat放入trie树中。然后将ahat放入trie树中,当要放入h时,我们发现ah这个前缀不存在,所以我们要把h作为一个字符串存起来,之后每放入一个字符,我们就更新所有的字符串,最终形参了hat这个字符串,经过预处理map["hat"]已经等于1,即已经存

2015-08-15 23:22:33 1993

原创 CodeForces 200C Football Championship(暴力枚举)

每场每队的进球数在0-9之间,那么暴力枚举即可。关键的是枚举的顺序。首先我们要保证B队获胜,那么X-Y一定大于0,所以我们可以枚举B队净胜球数(即X-Y),再枚举B队失球数(即Y),每次枚举后排序,若B队在前2名则更新答案,这样两层循环之后就可以得出使得(X-Y)最小,同时Y最小的答案。另外:除了B队外的3支队伍的队名是没有规律的,不要被样例迷惑。

2015-08-06 16:53:52 1933

原创 HDU 2489 Minimal Ratio Tree(prim+DFS)

首先n的范围是[2,15],所以可以用dfs搜索使得Ratio最小的点。那么思路基本清晰:首先dfs,搜索所有的点选与不选所得到的最大的Ratio,如果当前状态下得到的Ratio比之前得到的Ratio要小,那么把当前状态的vis数组更新的答案ans数组中。最后从1到n扫描ans数组即可保证答案是升序。

2015-08-06 16:49:13 1596

原创 HDU 3191 How Many Paths Are There(SPFA)

最短路我们可以求,但是次短路怎么求呢?我们可以把记录最短路长度的mincost数组和记录最短路个数的dp数组变成二维的,1表示最短路,2表示次短路。若遇到比最短路还短的路,则把最短路的信息赋值给次短路,再改变最短路的信息。另外我们更新mincost数组的时候会遇到以下四种情况:1)从当前点出发到达i的某条路的长度比到达i点的最短路短:把最短路信息赋值给次短路,把这条路的信息赋值给最短路;2)从当前点出发到达i的某条路的长度与到达i点的最短路的长度一致:把到达当前点且长度最短的种类数加到到达i点的最短路

2015-08-06 16:46:02 1660

原创 HDU 4081 Qin Shi Huang's National Road System(prim)

我们可以先建一棵最小生成树,然后再从这n个城市中选择2个城市,把二者之间的路看做用法术造的路。如果这条路在最小生成树上,即去掉这条边后最小生成树会变成两棵独立的树,那么A/B就是(二者城市的人口数总和/最小生成树的值减去二者之间的长度);如果这条路不在生成树上,那么为了使A/B最大,我们要在最小生成树上删除一条权值最大的边使得生成树分为两棵树,同时这2个城市不在同一颗树上,然后就可以把这两个城市之间的路视为用法术造出的路,A/B就是(二者城市的人口数总和/最小生成树的值减去二者之间某条使二者连通的边的最大

2015-08-06 16:43:23 2666

原创 HDU 4360 As long as Binbin loves Sangsang(SPFA)

SPFA,多一个dp数组记录,特判n=1的情况,路径长度可能超int。

2015-08-06 16:40:21 1778

McAfee官方卸载工具 MCPR

McAfee官方卸载工具,双击直接运行即可完全卸载McAfee

2016-06-16

空空如也

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

TA关注的人

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