编程成果
ergedathunder
我见青山多妩媚,料青山见我应如是
展开
-
poj 2689 Prime Distance
题意 给两个数m,n求m~n间的任意相邻的两个素数的最短距离和最大距离,若不存在两个素数输出There are no adjacent primes.这个题坑的我WA了十多次,千万注意数据范围:m-n<1000000; 然而m和n均在int范围内所以必须采用映射比如说数m~n之间的任意一个数i都可以用i-m存到数组里,若求的是2000000~3000000,则int数组b;b[0]记录的就是200原创 2016-09-14 14:13:24 · 251 阅读 · 0 评论 -
网络流详解(好文章啊)
网络流最近在学习二分图匹配,网络流和博弈论(%eazy,miaomiao,lsr_dalao,zyh,zlt),感谢诸位牛犇给蒟蒻的讲课,让我受益匪浅,PPT就不放上来了,有版权问题,下面我给大家谈谈我近期学习网络流的心得。(因为前几天感冒落了些进度,感谢ergeda和脑屁股的细心辅导)。微笑吐舌头一:what is 网络流???根据lsr_dalao的ppt上所言: 定义:转载 2017-02-12 15:35:30 · 777 阅读 · 1 评论 -
单调队列
单调队列今天问了长者有关单调队列的知识,单调队列这种东西其实用途并不是特别的广泛,只是在处理区间上询问的时候比较管用,而且这种询问有限制,比如: 一个含有n项的数列(n这种类似的题目,每次询问前m个数中最小的,显然暴力的话是O(n * m)的每个点枚举一遍m,就是这样,但是暴力显然会TLE,那有什么办法呢? RMQ是可以的,但是有一个问题,就是MLE,2000000 * 20,转载 2017-03-04 11:25:47 · 331 阅读 · 0 评论 -
P1519 穿越栅栏 Overfencing
题目描述描述 农夫John在外面的田野上搭建了一个巨大的用栅栏围成的迷宫。幸运的是,他在迷宫的边界上留出了两段栅栏作为迷宫的出口。更幸运的是,他所建造的迷宫是一个“完美的”迷宫:即你能从迷宫中的任意一点找到一条走出迷宫的路。给定迷宫的宽度W(1+-+-+-+-+-+| |+-+ +-+ + +| | | |+-+-+ + +| | |+-+ +-+-+-+(原创 2017-03-22 22:19:43 · 689 阅读 · 0 评论 -
P2737 [USACO4.1]麦香牛块Beef McNuggets
题目描述农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块。奶牛们正在想尽一切办法让这种可怕的设想泡汤。奶牛们进行斗争的策略之一是“劣质的包装”。“看,”奶牛们说,“如果你只用一次能装3块、6块或者10块的三种包装盒包装麦香牛块,你就不可能满足一次只想买1、2、4、5、7、8、11、14或者17块麦香牛块的顾客了。劣质的包装意味着劣质的产品。”你的任务是帮助这原创 2017-03-21 21:48:26 · 1238 阅读 · 0 评论 -
P2750 [USACO5.5]贰五语言Two Five
题目描述有一种奇怪的语言叫做“贰五语言”。它的每个单词都由A~Y这25个字母各一个组成。但是,并不是任何一种排列都是一个合法的贰五语言单词。贰五语言的单词必须满足这样一个条件:把它的25个字母排成一个5*5的矩阵,它的每一行和每一列都必须是递增的。比如单词ACEPTBDHQUFJMRWGKNSXILOVY,它排成的矩阵如下所示:A C E P TB D H Q UF J M R W原创 2017-03-21 20:37:20 · 659 阅读 · 0 评论 -
USACO P1457 城堡 The Castle
//代码虽然长了点,但应该相当清楚吧~~~ //考虑一二问,只需dfs一遍即可求出答案(根据8>4+2+1,4>2+1,2>1,可以判断哪边有墙)#include<cmath>#include<algorithm> #include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>using namespace st原创 2017-02-05 15:54:49 · 502 阅读 · 0 评论 -
poj 2449 A*
题意:大意是 有N个station 要求从s点到t点 的第k短路 (不过我看题意说的好像是从t到s 可能是出题人写错了)思路: 这是一道 经典的第k短路算法,只要你会就能过。PS:这也是我第一k短路题 学到了很多新的东西 因为没学过A* 算法 所以在网上找了好久,但讲了都不是清楚 解题报告也都不带注释的 这里我就附上详细的解题报告 也好给以后要学的人 一点帮助。从这题中还真的学到了很多 1.第k短转载 2017-02-10 14:49:10 · 234 阅读 · 0 评论 -
清华月赛 大吉大利晚上吃鸡题解
《大吉大利,晚上吃鸡!》题解出题人:陈宇验题人:刑健开(jkxing)题目简述给定一张有边权(边权全为正)的无向图, nn 个点 mm 条边,给定起点 SS 和终点 TT ,问有多少对 AA 和 BB 满足从 SS 到 TT 的任意最短路一定经过 AA 或者 BB ,但是不存在某条最短路同时经过 AA 和 BB 。解法一首先是最暴力的解法,枚举任意点对 AA 和 BB ,然后删掉 AA 和 BB ,转载 2017-11-27 09:23:41 · 821 阅读 · 0 评论 -
小玉买文具
题目描述班主任给小玉一个任务,到文具店里买尽量多的签字笔。已知一只签字笔的价格是1元9角,而班主任给小玉的钱是a元b角,小玉想知道,她最多能买多少只签字笔呢。 输入输出格式 输入格式:输入的数据,在一行内,包括两个整数,依次表示a和b,a<=10000,b<=9。输出格式:输出一个整数,表示小玉最多能买多少只签字笔。输入输出样例 输入样例#1:10 3输出样例#1:5直接根据实际知识运用一下就原创 2017-02-12 14:59:29 · 606 阅读 · 0 评论 -
spoj 375 Query on a tree——(树链剖分orLCT动态树)
You are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, 3...N-1.We will ask you to perfrom some instructions of the following form:CHANGE i ti : chang原创 2017-01-21 22:22:44 · 392 阅读 · 1 评论 -
拓补排序
#include#include#include#include#includeusing namespace std;int a[110][110],p[110],b[110];int main(){ int i,j,k,m,n,t; cin>>m>>n; for(i=1;i<=n;i++){ cin>>t>>k; a[t][k]=1; b[k]++; } i原创 2016-09-04 22:23:02 · 279 阅读 · 0 评论 -
堆优化的dijkstra(迪杰斯特拉)
前面在讲prim算法的时候已经提到了dijkstra,这里再说说求最短路的dijkstra算法;相比于邻接矩阵的存图方式我们可以用更适用于做题的链式前向星,更省空间;我们也可以用STL的priority_queue优先队列进行优化(手写堆太麻烦了~~)下面看代码(写的是求各个点到其他各个点的最短距离,可以用来当模板)#include#include//优先队列是队列的一种#in原创 2016-09-05 13:25:42 · 5048 阅读 · 2 评论 -
读入优化
读入优化指的是按字符读入,其实只需写一个bool型函数即可; 小数据的时候可能这个并没有什么用,但一旦遇到大数据,就可以起到甚至加速一秒还多的效果(光是一组数据~) 但以前都没有用读入优化的习惯~~~ 贴代码(很简单) void read(int &THUNDER){ bool flag=0;//flag仅仅是用来判断是不是负数 THUNDER=0;原创 2016-10-20 19:16:26 · 362 阅读 · 0 评论 -
HDU5248
这是一道二分题,然而我做了好久都没有发现~~~ 跟去年的跳石头有点相似,不断缩小范围:#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>#define inf 100000000using namespace std;int a[原创 2016-11-14 19:05:18 · 477 阅读 · 0 评论 -
light oj 1003 - Drunk
这题看似简单,但蒟蒻我做起来确实花了不少功夫~ 大致题意: 给出T组数据,每一组输入两个字符串,意为要想喝后面那种饮料就必须先喝前面的,看能不能喝完所有饮料。 若能输出“Yes” else printf(“No\n”); 思路: 就是一个裸的搜环,若搜到了就直接退出,一开始的字符串就用map处理好成数字。 #include<cmath> #include<cstdio>原创 2016-12-03 15:06:48 · 330 阅读 · 0 评论 -
联赛总结
联赛考完了,心里稍有不甘,总结不知该从何说起,还是按廖哥的来吧~。 一、参赛心理历程 考前,我的心里便颇有起伏。第一次参加这种“大赛”,内心的激动实在是在所难免,也不免自恋的对自己有一些不切实际的希望,但一进考场,就感觉身体已不是自己的了,手忙脚乱的愣坐了五分钟才急匆匆的打开电脑,然后又对着电脑乱摁了十分钟,vim都不知道怎么打开,幸亏最后遇到廖哥才得以解除危机,但我早已是惊的一头大汗。原创 2016-11-26 19:50:22 · 480 阅读 · 0 评论 -
LCA之倍增及ST算法
倍增算法就是根据一个数的往上2^n个祖先等于这个数往上的第2^n-1个祖先的第2^n-1个祖先,然后就用rmq预处理。 这一步要打深搜。void dfs (int h ,int deepth){ p [h] = 1 ; for ( int i = Begin [h] ; i ; i = Next[i]){ if ( !p[to[i]] ){原创 2016-12-25 20:03:35 · 772 阅读 · 0 评论 -
食物链(并查集)
题意题目描述动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B吃 C,C 吃 A。现有 N 个动物,以 1 - N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这 N 个动物所构成的食物链关系进行描述:第一种说法是“1 X Y”,表示 X 和 Y 是同类。第二种说法是“2 X Y”,表示 X 吃 Y 。此人对 N 个动物原创 2017-01-21 16:40:43 · 534 阅读 · 0 评论 -
清华月赛 Yazid的新生舞会题解
算法一(针对n≤300n\leq 300的测试点)考虑枚举所有区间,然后求其众数及出现次数,并判断是否超过区间总长的一半,统计答案即可。时间复杂度O(n3)O\left( n^3\right)算法二(针对n≤2,000n\leq 2,000的测试点)考虑先枚举区间的左端点ll,再从左到右枚举右端点rr并用数组维护每个数的出现次数,同时使用变量维护当前众数、众数的出现次数。不难发现,当右端点向右移动时转载 2017-11-27 10:10:14 · 982 阅读 · 0 评论