挑战程序设计竞赛
叶子心情你不懂
帅哥
展开
-
POJ1753Flip Game(深度优先搜索)
深度优先搜索暴力搜一遍。dfs带了两个参数,一个是当前的深度(0是第一次),一个是当前节点已经翻的次数。#include using namespace std;bool maze[4][4];//棋盘int ans = -1;//答案bool isend()//棋子是否都一样{ bool m = maze[0][0]; for(int i = 0; i <原创 2018-01-24 23:54:55 · 247 阅读 · 0 评论 -
Carmichael Numbers(UVA 10006)
快速幂加素数筛。我有两个错误点:1.代码:for(int i = 2; i < n; i++) if(power(i, n) != i){ flag = false; break; }里面break一开始没写, T了。2.快速幂我一开始是int,WA了,然后改成long long就AC了。 #include us原创 2018-02-18 20:08:07 · 207 阅读 · 0 评论 -
贪心的三道小题目
题目来源:挑战程序设计竞赛一。题目链接:点击打开链接这道排牛的题挺简单的,虽然我的代码算法和书上基本差不多,但是丑······还是贴书上的吧(还是我自己盲敲的)#include #include using namespace std;int main(){ bool left; int N, b(0), a(0), num(0); char s[2005] =原创 2017-12-02 18:01:43 · 160 阅读 · 0 评论 -
BFS 迷宫最短路径
恩,第一次用英文写注释,,,这个代码学的《挑战程序设计竞赛》上的(因为UVA效果太差,就不看刘汝佳了,心情好了再去看)#include #include #include using namespace std;#define MAX_N 100#define MAX_M 100int N, M;//line and cowchar maze[MAX_N原创 2017-12-24 18:17:23 · 268 阅读 · 0 评论 -
POJ lake counting 2386
数水洼,就是八个方向连着的算同一个洼#include using namespace std;#define MAX_N 100#define MAX_M 100int N, M;int ans;char field[MAX_N][MAX_M + 1];//院子bool xyisok(int x, int y){ if( 0 <= x && x < N &原创 2017-12-24 18:28:32 · 169 阅读 · 0 评论 -
深度优先搜索生成全错序排列
怀恋啊,记得高中和大一之间的暑假里刚学c语言时我想写个24点程序,就搜到了用递归实现的这个全错序程序,当时看了好久才看懂,怀恋怀恋。#include #include using namespace std;#define MAX_N 100bool used[MAX_N];int perm[MAX_N];void permutation(int pos, int n原创 2017-12-24 18:58:07 · 364 阅读 · 0 评论 -
poj2431 Expedition
昂,优先队列的题。思路嘛,本来车走到一个加油站就要纠结加不加油,这样我们可以换个思维,就是让车跑到半路上没油的时候再后悔到前面路过的加油站加油。这时候很明显就是要选前面油最多的加油站。如果前面的加油站的油都加完了,那车就只能gg,输出-1;我天真的以为输入是排好序的,wa了好几次。。。。。。唉,年轻啊。#include #include #include using namespace st原创 2018-01-18 14:53:49 · 291 阅读 · 0 评论 -
poj1182食物链(并查集的聪明应用)
维护信息的题目。由于N和K很大,所以必须高效地维护动物之间的关系,并快速判断是否产生了矛盾。并查集是维护“属于同一组”的数据结构,但是在本题中,并不只有属于同一类的信息,还有捕食关系的存在。因此需要开动脑筋维护这些关系。对于每只动物i创建3个元素i-A,i-B,i-C,并用这3 XN个元素建立并查集。这个并查集维护如下信息:1. i-x表示“i属于种类x”。2.原创 2018-01-23 23:35:28 · 132 阅读 · 0 评论 -
图论基础——最短路问题
一。单源最短路问题1。(Bellman-Ford)1.当图为DAG时,把图拓扑排序一下,然后用递推关系d[i] = d[j] + e(i, j)。2.当图有圈且不存在负圈时,无法一下子全部递推出来,我们用一个循环套住递推式子,循环在每个节点都算出来时退出。struct edge{int from, to, cost;};edge es[MAX_E];int d[MAX_V];原创 2018-01-25 22:25:07 · 926 阅读 · 0 评论 -
POJ3009 Curling2.0(深搜)
1.w和h的顺序搞反了2.模拟往一个方向滑的时候用不同的数字表示不同的情况(find函数)3.深搜终止条件不能忘4.复制粘贴相似代码要谨慎题目就是直接四个方向搜就ok。虽然调试样例调试了很久,但是一把直接AC爽。#include #include using namespace std;#define INF 100000int maps[102][1原创 2018-02-18 22:00:06 · 161 阅读 · 0 评论