随笔分类 -  ACM-ICPC

摘要:Overlapping Squares我的思路:可以根据所给图形计算出图形中包含的方块的个数以及它们各自的位置,方块可以根据某一个角点的位置来确定,具体方法见 count() 函数。方块确定之后,图形的各种变化就取决于方块们的不同放置顺序了,枚举所有排列,进行模拟,看... 阅读全文
posted @ 2018-12-29 15:49 ACLJW 阅读(213) 评论(0) 推荐(0)
摘要:The Domino Effect回溯加剪枝。只需DFS右、下两个方向即可,可以一行一行来。弄完一行之后看下该行所有数字是否都配对了,否则剪枝。还是得细心,两个 cnt 认错了找了大半天 bug 。。。#includeusing namespace std;const... 阅读全文
posted @ 2018-12-16 23:42 ACLJW 阅读(137) 评论(0) 推荐(0)
摘要:Golygons回溯加剪枝。某个方向可走的条件是此方向上没有障碍物挡道,还有一点容易被忽视的就是不能落到之前到过的点上!!!最重要的剪枝就是每走一步就判断一下剩下的步数是否有可能回到原点,还有就是如果提前到达原点也要剪掉。#includeusing namespace... 阅读全文
posted @ 2018-12-13 23:34 ACLJW 阅读(208) 评论(0) 推荐(0)
摘要:Firetruck回溯即可,不过要注意先判断是否可以到达着火点,如果到不了那就没必要回溯了,可能给的数据比较坑,到不了的数据比较多,不判断的话会超时。还有就是输出的格式和样例给的竟然不一样,真是醉了。#includeusing namespace std;const ... 阅读全文
posted @ 2018-12-11 17:09 ACLJW 阅读(125) 评论(0) 推荐(0)
摘要:Mobile Computing枚举二叉树然后计算其宽度即可,每次枚举两个节点构造一个父节点,计算宽度时需要注意的是每棵树的左节点的右边缘可能超过其右子树的左边缘,反之亦然。#includeusing namespace std;const int maxn = 12... 阅读全文
posted @ 2018-10-26 17:37 ACLJW 阅读(166) 评论(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 阅读(176) 评论(0) 推荐(0)
摘要:Sculpture思路:将三维空间网格化,每个长方体占据的所有单元标记为1。求面积的话,DFS所有的单元,依次检查是上下左右前后六个方向上相邻单元是否为1,若否则是表面,面积加+1。求体积的话,从外面某个单元开始DFS,求出外面值为0的单元的个数,那么总单元个数 - ... 阅读全文
posted @ 2018-08-07 23:55 ACLJW 阅读(213) 评论(0) 推荐(0)
摘要:Abbott's Revenge一些细节要特别注意#includeusing namespace std;const int maxn = 10;const char* dirs = "NESW";const char* turns = "FLR";struct No... 阅读全文
posted @ 2018-07-31 23:39 ACLJW 阅读(116) 评论(0) 推荐(0)
摘要:Ancient Messages数一数就能发现,题目表中的6个符号从左到右依次有1,3,5,4,0,2个洞,各不相同。这样,只需要数一数输入的符号有几个“白洞”,就能准确地知道它是哪个符号了。至于具体实现,我的思路是:先确定一个符号,找到该符号的空洞个数然后将该符号“... 阅读全文
posted @ 2018-06-02 23:53 ACLJW 阅读(184) 评论(0) 推荐(0)
摘要:Rails 我的思路:火车站可看做stack,对于每节车厢,有两种选择,入栈或直接前进。那么要判断顺序是否合法,只需要这样:设置一个指向判断序列的指针,对于1-n的每个数字,如果该数字小于指针指向的数字,那么push。如果相等,依次判断指针后面的数字是否比该数字小,如... 阅读全文
posted @ 2018-05-19 23:41 ACLJW 阅读(134) 评论(0) 推荐(0)
摘要:Concurrency Simulator没看清楚题意考虑复杂了。。我以为是如果剩下的时间不够一条指令执行完的话这段时间还是算的,搞的还挺麻烦的,比如这条指令需要10秒,剩下5秒,那么下次执行的时候只需5秒就行了。其实不是的,题目中说:Any instruction ... 阅读全文
posted @ 2018-05-03 14:00 ACLJW 阅读(177) 评论(0) 推荐(0)
摘要:Queue and A#includeusing namespace std;const int maxn = 1000 + 5;struct topic{ int n,st,t,b,w = 0;}t;struct person{ int w = 0,st... 阅读全文
posted @ 2018-04-30 23:50 ACLJW 阅读(164) 评论(0) 推荐(0)
摘要:Do You Know the Way to San Jose?题目不难,主要就是排序,不过有些细节需要注意。一个很坑的地方是 map 的两个对角点是不确定的,可能是左上和右下,也可能是左下和右上,而且两个点的顺序也不一定是左右。。。害我找了好久的bug。。。还有就是... 阅读全文
posted @ 2018-04-29 23:44 ACLJW 阅读(186) 评论(0) 推荐(0)
摘要:Searching the Web这道题就 "and" 查询麻烦点,别的还好,但是刚开始超时了。。。version 1(Time limit exceeded):#includeusing namespace std;const int maxn = 100 + 5;... 阅读全文
posted @ 2018-04-28 21:42 ACLJW 阅读(230) 评论(0) 推荐(0)
摘要:Bug Hunt我的思路:对于每行code,若无等号,直接初始化数组即可,否则依次检查等号左边和右边的表达式是否正确。对于左边的表达式,只需检查到首个数组之前即可,因为可能要对其初始化;对于右边表达式则要全部检查。对于复合表达式要如何检查呢?我的做法是先找出数字下标,... 阅读全文
posted @ 2018-04-25 12:24 ACLJW 阅读(286) 评论(0) 推荐(0)
摘要:Borrowers又因为输出WA了一发。。。一定要看清楚输出要求啊啊#include#include#include#include#include#includeusing namespace std;const int maxn = 10000;typedef p... 阅读全文
posted @ 2018-04-23 10:48 ACLJW 阅读(187) 评论(0) 推荐(0)
摘要:Printer Queuepriority_queue + queue#include#includeusing namespace std;const int maxn = 500000;int t,n,pos;int main(){ scanf("%d",&... 阅读全文
posted @ 2018-04-22 16:52 ACLJW 阅读(179) 评论(0) 推荐(0)
摘要:Symmetry我的思路:开始是想着将所有点都存在set里面,找出对称轴,然后对于每一个点确定其对称点是否存在,但是觉得这样效率似乎太低,就放弃了。后来想到了这样做:将所有点按x坐标进行排序,若x坐标相同,则对于对称轴左边的点按y坐标又小到大排序,右边则相反。这样的话... 阅读全文
posted @ 2018-04-22 15:42 ACLJW 阅读(169) 评论(0) 推荐(0)
摘要:Ducci Sequenceversion 1(130ms):#includeusing namespace std;const int maxn = 20;int t,n,a[maxn];int main(){ scanf("%d",&t); while... 阅读全文
posted @ 2018-04-21 22:05 ACLJW 阅读(163) 评论(0) 推荐(0)
摘要:Alignment of Code#include#include#include#include#includeusing namespace std;const int maxw = 180 + 5;const int maxl = 1000 + 5;int sp... 阅读全文
posted @ 2018-04-21 01:14 ACLJW 阅读(121) 评论(0) 推荐(0)