随笔分类 -  UVa

摘要:"Zombie's Treasure Chest" 阅读全文
posted @ 2019-01-13 23:17 ACLJW 阅读(176) 评论(0) 推荐(0)
摘要:Overlapping Squares我的思路:可以根据所给图形计算出图形中包含的方块的个数以及它们各自的位置,方块可以根据某一个角点的位置来确定,具体方法见 count() 函数。方块确定之后,图形的各种变化就取决于方块们的不同放置顺序了,枚举所有排列,进行模拟,看... 阅读全文
posted @ 2018-12-29 15:49 ACLJW 阅读(211) 评论(0) 推荐(0)
摘要:The Domino Effect回溯加剪枝。只需DFS右、下两个方向即可,可以一行一行来。弄完一行之后看下该行所有数字是否都配对了,否则剪枝。还是得细心,两个 cnt 认错了找了大半天 bug 。。。#includeusing namespace std;const... 阅读全文
posted @ 2018-12-16 23:42 ACLJW 阅读(133) 评论(0) 推荐(0)
摘要:Golygons回溯加剪枝。某个方向可走的条件是此方向上没有障碍物挡道,还有一点容易被忽视的就是不能落到之前到过的点上!!!最重要的剪枝就是每走一步就判断一下剩下的步数是否有可能回到原点,还有就是如果提前到达原点也要剪掉。#includeusing namespace... 阅读全文
posted @ 2018-12-13 23:34 ACLJW 阅读(206) 评论(0) 推荐(0)
摘要:Firetruck回溯即可,不过要注意先判断是否可以到达着火点,如果到不了那就没必要回溯了,可能给的数据比较坑,到不了的数据比较多,不判断的话会超时。还有就是输出的格式和样例给的竟然不一样,真是醉了。#includeusing namespace std;const ... 阅读全文
posted @ 2018-12-11 17:09 ACLJW 阅读(122) 评论(0) 推荐(0)
摘要:The Morning after Halloween直接BFS会超时,题目中提示过墙壁很多,那么可以将所有的空格提取出来做张图,然后记录每个空格周围的邻居,这样就不用每次都判断能不能走了。优化的话可以使用双向BFS,从每次正向(从开始位置搜索)搜索一次,反向(从目标... 阅读全文
posted @ 2018-12-05 22:27 ACLJW 阅读(237) 评论(0) 推荐(0)
摘要:Fill#includeusing namespace std;const int maxn = 200 + 5;int T, a, b, c, d;struct node{ int v[3], dist; bool operator rhs.dist;... 阅读全文
posted @ 2018-12-03 23:33 ACLJW 阅读(160) 评论(0) 推荐(0)
摘要:Mobile Computing枚举二叉树然后计算其宽度即可,每次枚举两个节点构造一个父节点,计算宽度时需要注意的是每棵树的左节点的右边缘可能超过其右子树的左边缘,反之亦然。#includeusing namespace std;const int maxn = 12... 阅读全文
posted @ 2018-10-26 17:37 ACLJW 阅读(163) 评论(0) 推荐(0)
摘要:Paintball这个题可以看作是图上有很多圆形禁区,如果直接考虑是否可以从左边走到右边似乎有些无从下手,其实可以这样考虑,把整个方形区域看作水面,把禁区看作小岛,如果可以从上边沿着这些小岛走到下边的话,就说明方形区域被禁区整个隔断了,那么就不能从左边走到右边,这样一... 阅读全文
posted @ 2018-08-29 00:32 ACLJW 阅读(218) 评论(0) 推荐(0)
摘要:Parentheses Balance之前脑子可能坏掉了。。。简单的栈的应用,要注意的一个地方是一定要用 fgets ,因为如果是空串的话 scanf 会直接读下一行。#includeusing namespace std;const int maxn = 128 +... 阅读全文
posted @ 2018-08-21 16:22 ACLJW 阅读(111) 评论(0) 推荐(0)
摘要:Tree Reconstruction#includeusing namespace std;const int maxn = 1000 + 5;int n,x,root;int pos[maxn];vectorA[maxn];int main(){ // fr... 阅读全文
posted @ 2018-08-20 23:13 ACLJW 阅读(127) 评论(0) 推荐(0)
摘要:Bandwidth注意节点不一定是按字母表顺序从前到后用的,也有可能是A C 却没用B,因为这个TLE了好几次。。#includeusing namespace std;const int maxn = 26;int L,w;char s[100];int seq[m... 阅读全文
posted @ 2018-08-18 22:48 ACLJW 阅读(133) 评论(0) 推荐(0)
摘要:Krypton Factor注意 && 别写成 & 了。。。#includeusing namespace std;const int maxn = 80 + 5;int n,L,cnt;int A[maxn];int dfs(int cur){ if(cnt+... 阅读全文
posted @ 2018-08-17 00:39 ACLJW 阅读(113) 评论(0) 推荐(0)
摘要:Prime Ring Problem#includeusing namespace std;const int maxn = 17;int n;int A[maxn],vis[maxn],p[2*maxn];int isPrime(int n){ for(int... 阅读全文
posted @ 2018-08-16 00:13 ACLJW 阅读(97) 评论(0) 推荐(0)
摘要:Fractions Again?!x 要用 long long。#includeusing namespace std;const int maxk = 10000;int k;long long x[2*maxk];int y[2*maxk];int judge(i... 阅读全文
posted @ 2018-08-14 12:35 ACLJW 阅读(233) 评论(0) 推荐(0)
摘要:Maximum Product#includeusing namespace std;const int maxn = 20;int n;int seq[maxn];int main(){ // freopen("data.in","r",stdin); ... 阅读全文
posted @ 2018-08-14 11:50 ACLJW 阅读(122) 评论(0) 推荐(0)
摘要:Division#includeusing namespace std;const int maxn = 64 + 5;int n,a[30240][6];int num,kase = 0,cnt = 0;int Pow(int a,int b){ int n ... 阅读全文
posted @ 2018-08-14 00:07 ACLJW 阅读(127) 评论(0) 推荐(0)
摘要:Spatial Structures#includeusing namespace std;const int maxn = 64 + 5;int n,len;int seq[maxn*maxn];char img[maxn][maxn];struct node{ ... 阅读全文
posted @ 2018-08-11 23:26 ACLJW 阅读(175) 评论(0) 推荐(0)
摘要:Patrol Robot这个题还是DFS,不过每个状态除了记录位置之外,还要记录剩余穿越次数,这样一来就变成了三维DFS。对于值为1的点如果剩余穿越次数大于0且该状态未遍历过的话也可以访问。像这种四个方向的话用常量数组比较方便,没必要搞个二重循环,容易出bug。#in... 阅读全文
posted @ 2018-08-10 00:57 ACLJW 阅读(185) 评论(0) 推荐(0)
摘要:Knight MovesBFS即可,字符串数组 size 定义成了 2 导致输入一直错误,应该是无法存入'\0' 引起的,待会儿再深究。#includeusing namespace std;const int maxn = 8;typedef pair P;int ... 阅读全文
posted @ 2018-08-09 23:10 ACLJW 阅读(146) 评论(0) 推荐(0)