自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

idealism_xxm的专栏

Only the spirit is our fuel!

  • 博客(50)
  • 收藏
  • 关注

原创 USACO-Section 2.1 Hamming Codes (DFS)

由于0是最小的数,所以0必须有,然后DFS搜索即可,由于是从小到大枚举,所以找到的第一个就是题目所求答案。

2015-08-31 18:21:49 658

原创 USACO-Section 2.1 Healthy Holsteins (状态压缩DFS)

第一反应又是贪心。。。但不知道第二步开始怎么贪,又看到最多有15种饲料,枚举不会超时,而且可以状态压缩。ans从17位开始保存选取饲料的种数,前16位保存养料的取舍情况。

2015-08-31 16:59:11 662

原创 USACO-Section 2.1 Sorting a Three-Valued Sequence (贪心)

1.3第一个TEXT说过是贪心解法,幸亏还记得住。官方题解:Algorithm The sequence has three parts: the part which will be 1 when in sorted order, 2 when in sorted order, and 3 when in sorted order. The greedy algorithm swaps as many as possible of the 1's in the 2 part with 2's in t

2015-08-30 19:51:53 609

原创 USACO-Section 2.1 Ordered Fractions(排序)

数据很小,直接将所有数存入数组,然后排序即可。注意:只有最简分数才放入数组,因为如果它不是最简分数,则它化简后一定能在数组中找到

2015-08-30 17:48:40 757 2

原创 USACO-Section 2.1 The Castle(DFS)

由于数据很小,所以求出房间数目后直接枚举每一个点的北墙和东墙即可。样例样例还是很全面的,刚开始没考虑墙的两边是一个房间,样例都过不了。。。

2015-08-30 17:14:03 820

原创 USACO-Section 1.5 Superprime Rib(Miller-Rabin)

从最高位开始判断,由于一位数只有2,3,5,7是素数,所以枚举最高位,然后接下来每一位都必须是奇数,所以枚举1,3,5,7;递归停止条件是:当前数不是素数 或 当前数是素数且是n位书

2015-08-28 16:51:51 488

原创 Miller_Rabin素数测试算法模板对比

昨天在USACO做了一道判断素数的题,就想着学习一下Miller_Rabin素数测试算法,在网上找到两种模版,第一种十分简洁,运行速度也很快,但是会判错极少的几个非素数;第二种比较麻烦,运行速度很慢,所以我便想找到第一种模版不能判断的非素数特判一下,结果用了一天,电脑只找到10^8以下的,10^9内还有2个没找到,但正确的模版运行速度太慢,我的电脑又太渣,耗不起时间了,姑且先这样,等以后有深入理解有更好的方法再更新一下。第一种:源自吉林大学ACM模版刚开始用的是随机数测试,我想到以前了解过只要用2,7

2015-08-28 16:12:15 1669

原创 USACO-Section 1.5 Prime Palindromes(Miller-Rabin)

由于USACO挂了,只得在NOCOW看题,没想到HINT原本是隐藏的,直接看了HINT后逃离不了这种思路。。。由于回文数比质数还少,所以先构造回文数,再判断其是否为素数题目比较简单,所以学习一下Miller-Rabin素数检测算法

2015-08-27 21:31:57 535

原创 USACO-Section 1.5 Number Triangles(DP)

DP入门题。状态转移方程:ans[j]=max(ans[j],ans[j+1])+num[i][j];

2015-08-27 16:44:42 345

原创 USACO-Section 1.4 Mother's Milk(BFS)

今天USACO总挂,好烦人。。。很简单的搜索题,深搜、宽搜都可以,感觉宽搜更容易写就用的宽搜,每次将未出现的状态压入队列中,出队列时判断是否合法,直至队列为空

2015-08-27 15:28:08 568

原创 USACO-Section 1.4 Arithmetic Progressions(枚举)

数据很小,时间有5s,直接枚举即可。最后一组数据比官方标程慢了0.5s,本来有更好的优化,但是更浪费空间,就懒得改了。。。

2015-08-27 14:20:58 710

原创 USACO-Section 1.3 Ski Course Design(枚举)

思路:数据很小,直接枚举山的最高高度即可,对于山的最高高度i,若i-h[j]>17,则将h[j]的高度调整为i-17;若h[j]>i,则将h[j]的高度调整为i;求出所有最高高度的方案调整费用的最小值。

2015-08-26 23:55:33 612

原创 USACO-Section 1.3 Wormholes(枚举)

数据很小,但是我不剪枝的枚举还是超时了。。。发现官方题解真的很巧妙,每次枚举一对黑洞时,找第一个未配对的黑洞,这样绝对不会重复。

2015-08-26 20:22:50 651

原创 USACO-Section 1.3 Combination Lock(枚举)

每个密码数字误差在2以内的数字最多有5个,2个密码则最多有250种结果,所以每次先找出这符合要求的数字,然后枚举即可

2015-08-26 15:51:16 804 3

原创 USACO-Section 1.3 Prime Cryptarithm(枚举)

题目给n个数字,要求找出所有符合要求的 3位数(abc)乘以2位数(de) 的组合①abc和de由规定数字组成②abc*d与abc*e的结果是三位数且由规定数字组成③abc*de的结果是四位数且由规定数字组成由于最多只有9个数字,所以枚举每个数字即可

2015-08-26 15:43:11 644

原创 USACO-Section 1.3 Barn Repair(贪心)

做法在Section 1.3第一个TEXT已经说明,就是简单的贪心,每次将空隙最小的两个牛棚连起来用一块木板即可,最后只要用的木板数<=m即可。注意输入的数据不是按顺序的,需要排序

2015-08-26 15:31:45 614

原创 USACO-Section 1.3 Mixing Milk(贪心)

老师说我们现在太渣了,还是继续认真做USACO吧。非常简单的贪心,读入数据后排序,按照单价从小往上取,直到取的容量等于所需时即可

2015-08-26 15:18:44 625

原创 HDU-2489 Minimal Ratio Tree(最小生成树[Prim])

好多次都能想到正解,但是不敢去写,还是需要勇于尝试,不断地尝试才能有更多的理解。数据范围很小,枚举每一种点的组合情况即可。

2015-08-24 15:28:48 694

原创 XDU-1111 Too Easy(矩阵快速幂)

做了一天,我真是太渣了。先算了前几个,在oeis查到了这个数列(http://oeis.org/A001924),看到了下方的公式有:a[n]=Fib(n+4)-n-3,想到斐波那契数列有通项公式,就直接用double求出来,看到前几十个都是符合的就交了,结果WA,重新测试很大的数(44以后),由于有n次方运算,double的精度产生的误差就会放大到比1000000007大,从而影响运算结果。在写完之前,经人点播,其实已经发现了递推公式,但是看到有递推公式中有n和常数,就放弃了矩阵快速幂(果真是做题太少

2015-08-21 19:49:11 752

原创 XDU-1112 Too Stupid(DP)

放在专题中就只想DP,还是想了好久(要是比赛估计就想不出了...),从一维状态想到二维状态思维过程:刚开始只想到一维i个人比i-1个人多出来的一个人可以:①自己一个派系②在i-1个人出现的派系中①的情况很好转移,但是②不好办,因为不同方案的派系数不同,转移出的方案也不同所以将状态用二维表示,dp[i][j]表示i个人j个不同的派系有多少方案即 ①:dp[i-1][j-1],②dp[i-1][j]*j(由于有j个不同的派系,所以第i个人可以出现在j个派系中,则方案数要乘以j)此时则有dp[i][

2015-08-21 11:14:40 667

原创 HDU-4081 Qin Shi Huang's National Road System(最小生成树[Prim])

题目給的稠密图,怕超时只得放弃Kruskal算法。第一反应是贪心,直接在人口最多的两座城市建立magic rode,仔细一想明显会错,A虽然取得最大,但是B也可能会大。然后就想到枚举任意两点的边为magic rode,求最小生成树,但这样又会超时。最后看到大家都是先求最小生成树,再枚举每条边去掉,然后在两部分分别找人口最大的城市添上magic rode即可

2015-08-20 20:45:52 580

原创 HDU-4786 Fibonacci Tree(最小生成树[Kruskal])

区域赛都是有思维难度的题吧,果然还是不够熟悉图,完全没有头绪。看了别人的题解也才知道:如果一棵生成树最少含有low条白边,最多含有hig条白边,那么含有x(low<=x&&x<=hig)条白边的生成树一定存在不知道为什么中间的每一个生成树都存在(望大神告知),但我自己画了几个图还没找出反例

2015-08-20 13:33:17 1074 2

原创 HDU-1162 Eddy's picture(最小生成树[Kruskal])

Kruskal算法就是并查集,学习的同时还能复习并查集

2015-08-20 10:52:25 561

原创 HDU-1301 Jungle Roads(最小生成树[Prim])

最后一道Prim的最小生成树,看题意应该用邻接表+优先队列更快,但只有26个点,没区别,作为最后一道Prim的最小生成树,两个方法都写一次。邻接矩阵:

2015-08-19 21:46:04 516

原创 HDU-1875 畅通工程再续(最小生成树[Prim])

本题除了让自己判断两点之间是否存在边外,依旧是一道裸的最小生成树。只需要注意把两点间距离的平方当作权值以避免精度问题即可。

2015-08-19 18:55:31 454

原创 HDU-1102 Constructing Roads(最小生成树[Prim])

邻接矩阵的prim和Dijkstra真的好像,都一样简洁易懂

2015-08-19 16:45:05 429

原创 HDU-1879 继续畅通工程(最小生成树[Prim])

刚开始还想直接将建好的边的点压入队列,但感觉比较麻烦。然后就想到如果边已存在,则将其权值设为0,然后就变成裸的最小生成树。

2015-08-19 15:35:34 530

原创 HDU-1863 畅通工程(最小生成树[Prim])

非常裸的最小生成树,基本已经熟悉prim的代码了

2015-08-19 14:34:50 1180 4

原创 POJ-1258 Agri-Net(最小生成树[Prim])

开始学最小生成树了,照着郭老师的代码敲了一边,第一次交还错了。。。不过发现了二维vector的clear()函数的正确使用方法

2015-08-19 11:17:58 465

原创 HDU-5402 Travelling Salesman Problem(模拟)

比赛时已经想出和题解大致一样的思路,只是绕格子的方式分的太细,结果没时间写完(主要是自己太渣)题解:

2015-08-18 20:52:40 451

原创 HUD-5399 Too Simple(数学)

思路与官方的一样:首先要求每个f_if​i​​ 是个排列,否则如果某个f_if​i​​ 将两个数映射向同一个数,那么最后这两个数得到的值一定相同。如果还剩一个位置为-1−1,那么这个排列是唯一确定的,假设X*f_i*Y=IX∗f​i​​ ∗Y=I,那么f_i=X^{-1}*Y^{-1}f​i​​ =X​−1​​ ∗Y​−1​​ .所以假设有c(c\geq 1)c(c≥1)个-1−1,那么答案为(n!)^{c-1}(n!)​c−1​​ 个可行的方案。注意特判所有函数都

2015-08-18 19:20:41 375

原创 HDU-5400 Arithmetic Sequence(数学 || DP)

法一:和队友讨论之后,觉得每一个序列,只要其符合(①公差为d1②公差为d2③前面公差为d1,后面公差为d2)三者任意一个就满足题意然后求出每一个最长的符合题目条件的序列,然后求其连续子序列(元素个数>=2)假设一个最长的符合题目条件的序列的元素个数为tmp,则其连续子序列中:元素个数为tmp个的有1个,元素个数为tmp-1个的有2个……以此类推,将所有连续子序列(元素个数>=2)加起来得:((tmp-1)*tmp)/2

2015-08-18 18:51:47 507

原创 HDU-4370 0 or 1(最短路[Dijkstra])

尽管放在最短路专题中,但还是想不到怎么用最短路做,果真是我太渣了么下面是官方题解:显然,题目给的是一个0/1规划模型。解题的关键在于如何看出这个模型的本质。3个条件明显在刻画未知数之间的关系,从图论的角度思考问题,容易得到下面3个结论:1.X12+X13+...X1n=1 于是1号节点的出度为12..X1n+X2n+...Xn-1n=1 于是n号节点的入度为13.∑Xki =∑Xij 于是2~n-1号节点的入度必须等于出度

2015-08-18 11:57:46 740

原创 HDU-5392 Infoplane in Tina Town(分解质因数法求最小公倍数)

题意:给出一个置换,求它的循环长度。数据范围 :3*10^6思路:求出每一个循环的长度,然后再求他们的最小公倍数(题解说最小公倍数要:分解质因数,然后用快速幂和乘法)我按照这样的方法做还是用时5s+(写的又太渣了),幸亏hdu将时间从3500ms放宽到7000ms。不知道那些1400ms的大神怎么做的。。。

2015-08-16 17:12:13 1559

原创 HDU-1385 Minimum Transport Cost(最短路[Dijkstra])

除了边有权值,点也有权值,一开始没想到能用什么方法,看了讨论版后,发现用Dijkstra的话,每个节点至多只经过一次,所以用Dijkstra几乎不会变太多

2015-08-15 13:27:54 476

原创 HDU-1285 确定比赛名次(拓扑排序)

刚开始以为是同一层次的按照编号从小到大排名,结果样例都过不了,手动跑了一边,发现所有在队列中(即入度为0)的按照编号从小到大排名感觉优先队列对int从小到大出队是保存在结构体内,并重载小于运算符,看来还是知道的太少了

2015-08-14 22:55:22 492

原创 HDU-3342 Legal or Not(拓扑排序)

看题的时候第一反应是并查集,想写但是20天就忘光了并查集(还是需要好好练习),找模板的过程中反应过来无法表示,只能老实的写拓扑排序一次AC,用的书上讲的栈方法实现,又是31ms,大家的效率好高,然后看见讨论版有人说会卡重边,不知道为什么会卡住...

2015-08-14 21:50:01 388

原创 HDU-2647 Reward(拓扑排序)

第一道拓扑排序题目,很简单,但是书上讲的是用栈实现的,不会应用在这道需要分层的题,看了别人用队列实现的感觉很简单易懂,便按照类似的思路写了一次,效率貌似有点低,毕竟用了vector和队列,还需要更多的练习

2015-08-14 20:04:08 787 1

原创 HDU-2433 Travel(最短路[Dijkstra])

题目大意:多组输入,每组第一行读入定点数n和边数m,接下来m行是边。输出1~m条边分别摧毁后任意两点(分起点终点)的最短距离和,如果存在两点不连通,则INF由于边数多,如果每次都计算任意两点的距离会超时。看到大神的思路后,注意到每次只删除一条边,如果这条边在某两点(u,v)的最短路径中,则u,v两点的最短路长度会变,其他不变但是太懒了,不想记录路径,又看到很多人直接只算(u,v)的最短路,然后减去原来u,v的最短路*2,加上最新的最短路*2就是答案,但这样的代码居然能AC,数据真是好水例如这组数据

2015-08-14 16:14:09 671

原创 HDU-1548 A strange lift(最短路[Spfa || BFS])

第一眼看就知道应该要搜索,要不是放在最短路专题,还真想不到用图论做,简单题,刚好练习一下Spfa(看到Spfa时间效率不是很稳定,还是多用Dijkstra的好)BFS占用内存少,运行快,代码少,如果是无权图还是用BFS写更好BFS:

2015-08-13 23:34:47 528

空空如也

空空如也

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

TA关注的人

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