ACM-ICPC
文章平均质量分 75
ACLJW
这个作者很懒,什么都没留下…
展开
-
12113:Overlapping Squares
Overlapping Squares我的思路:可以根据所给图形计算出图形中包含的方块的个数以及它们各自的位置,方块可以根据某一个角点的位置来确定,具体方法见 count() 函数。方块确定之后,图形的各种变化就取决于方块们的不同放置顺序了,枚举所有排列,进行模拟,看看模拟结果里面有没有所给图形即可。思路没什么问题,代码了检查了好多遍,但是一直WA,暂时还没发现问题,再想想吧。#in...原创 2018-12-29 15:48:37 · 259 阅读 · 0 评论 -
1594:Ducci Sequence
Ducci Sequenceversion 1(130ms):#include<cstdio>using namespace std;const int maxn = 20;int t,n,a[maxn];int main(){ scanf("%d",&t); while(t--){ scanf("%d",&n); ...原创 2018-04-21 22:05:27 · 168 阅读 · 0 评论 -
210:Concurrency Simulator
Concurrency Simulator新鼠标新耳机好舒服啊 好享受这种听着喜欢的歌写着代码的感觉#include<bits/stdc++.h>using namespace std;const int maxn = 1000 + 5;int n,Q,t[5];string Key[] = {"=","print","lock","unlock","end"};int原创 2018-05-03 13:59:58 · 177 阅读 · 0 评论 -
1596:Bug Hunt
Bug Hunt我的思路:对于每行code,若无等号,直接初始化数组即可,否则依次检查等号左边和右边的表达式是否正确。对于左边的表达式,只需检查到首个数组之前即可,因为可能要对其初始化;对于右边表达式则要全部检查。对于复合表达式要如何检查呢?我的做法是先找出数字下标,确定其最内层数组,然后依次向外找出外层数组。此外还有一些小细节需要特别注意,这次是一次AC,开心。具体代码如下:#include&l...原创 2018-04-25 12:23:54 · 361 阅读 · 0 评论 -
1593:Alignment of Code
Alignment of Code#include<iostream>#include<cstring>#include<vector>#include<algorithm>#include<sstream>using namespace std;const int maxw = 180 + 5;const int maxl...原创 2018-04-21 01:13:42 · 130 阅读 · 0 评论 -
814:The Letter Carrier's Rounds
The Letter Carrier's Rounds注意可能有重复的收件人。version 1(20ms):#include<cstdio>#include<iostream>#include<map>#include<set>#include<cstring>#include<algorithm>using n...原创 2018-04-20 17:09:35 · 211 阅读 · 0 评论 -
207:PGA Tour Prize Money
PGA Tour Prize Money 这道题太麻烦了,先放这儿,日后再说。。。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 150;struct player{ char name[20]; int s...原创 2018-04-19 19:17:52 · 168 阅读 · 0 评论 -
509:RAID!
RAID! version 1:#include<cstdio>#include<cstring>using namespace std;const int maxd = 10,maxs = 64,maxb = 105;int c,p,d,s,b;char data[maxd][maxs*maxb],message[maxd*maxs*maxb];char re...原创 2018-04-14 08:37:42 · 198 阅读 · 0 评论 -
822:Queue and A
Queue and A#include<bits/stdc++.h>using namespace std;const int maxn = 1000 + 5;struct topic{ int n,st,t,b,w = 0;}t;struct person{ int w = 0,st = 0; //the rest time that can do next...原创 2018-04-30 23:50:18 · 234 阅读 · 0 评论 -
201:Squares
Squaresversion 1(20ms):#include<cstdio>#include<cstring>using namespace std;const int maxn = 10;int n,m,c,H[maxn][maxn],V[maxn][maxn];char readchar(){ for(;;){ c = getchar...原创 2018-04-13 19:40:01 · 123 阅读 · 0 评论 -
1597:Searching the Web
Searching the Web这道题就 "and" 查询麻烦点,别的还好,但是刚开始超时了。。。version 1(Time limit exceeded):#include<bits/stdc++.h>using namespace std;const int maxn = 100 + 5;typedef pair<int,int> P;vector<s...原创 2018-04-28 21:42:09 · 158 阅读 · 0 评论 -
514:Rails
Rails #include<bits/stdc++.h>using namespace std;const int maxn = 1000 + 5;int main(){ // freopen("data.in","r",stdin); // freopen("data.out","w",stdout); int n,a[maxn]; while...原创 2018-05-19 23:40:52 · 132 阅读 · 0 评论 -
208:Firetruck
Firetruck回溯即可,不过要注意先判断是否可以到达着火点,如果到不了那就没必要回溯了,可能给的数据比较坑,到不了的数据比较多,不判断的话会超时。还有就是输出的格式和样例给的竟然不一样,真是醉了。#include<bits/stdc++.h>using namespace std;const int maxn = 25;int t, n, cnt2;int vis...原创 2018-12-11 17:09:21 · 180 阅读 · 0 评论 -
211:The Domino Effect
The Domino Effect回溯加剪枝。只需DFS右、下两个方向即可,可以一行一行来。弄完一行之后看下该行所有数字是否都配对了,否则剪枝。还是得细心,两个 cnt 认错了找了大半天 bug 。。。#include<bits/stdc++.h>using namespace std;const int n = 7;int cnt;int dx[] = {1, 0}...原创 2018-12-16 23:41:35 · 290 阅读 · 0 评论 -
225:Golygons
Golygons回溯加剪枝。某个方向可走的条件是此方向上没有障碍物挡道,还有一点容易被忽视的就是不能落到之前到过的点上!!!最重要的剪枝就是每走一步就判断一下剩下的步数是否有可能回到原点,还有就是如果提前到达原点也要剪掉。#include<bits/stdc++.h>using namespace std;const int maxn = 50 + 5;int T, n...原创 2018-12-13 23:34:23 · 140 阅读 · 0 评论 -
1354:Mobile Computing
Mobile Computing枚举二叉树然后计算其宽度即可,每次枚举两个节点构造一个父节点,计算宽度时需要注意的是每棵树的左节点的右边缘可能超过其右子树的左边缘,反之亦然。#include<bits/stdc++.h>using namespace std;const int maxn = 12;int n,s,idx,w[maxn],vis[maxn];doubl...原创 2018-10-26 17:37:09 · 151 阅读 · 0 评论 -
12171:Sculpture
Sculpture思路:将三维空间网格化,每个长方体占据的所有单元标记为1。求面积的话,DFS所有的单元,依次检查是上下左右前后六个方向上相邻单元是否为1,若否则是表面,面积加+1。求体积的话,从外面某个单元开始DFS,求出外面值为0的单元的个数,那么总单元个数 - 外部值为0的单元个数 = 雕塑体积。但是由于外部单元个数巨大会导致堆栈溢出,所以需要对坐标进行离散化,另外应选BFS。原来v...原创 2018-08-07 23:54:36 · 230 阅读 · 0 评论 -
806:Spatial Structures
Spatial Structures#include<bits/stdc++.h>using namespace std;const int maxn = 64 + 5;int n,len;int seq[maxn*maxn];char img[maxn][maxn];struct node{ char c = 0; int cnt = 4; ...原创 2018-08-11 23:25:48 · 178 阅读 · 0 评论 -
816:Abbott's Revenge
Abbott's Revenge一些细节要特别注意#include<bits/stdc++.h>using namespace std;const int maxn = 10;const char* dirs = "NESW";const char* turns = "FLR";struct Node{ int r,c,dir; Node(int a...原创 2018-07-31 23:39:16 · 202 阅读 · 0 评论 -
1103:Ancient Messages
Ancient Messages数一数就能发现,题目表中的6个符号从左到右依次有1,3,5,4,0,2个洞,各不相同。这样,只需要数一数输入的符号有几个“白洞”,就能准确地知道它是哪个符号了。至于具体实现,我的思路是:先确定一个符号,找到该符号的空洞个数然后将该符号“擦除”,继续确定下一个符号。具体而言,每次找到一个黑点,然后DFS,如果其周围点为黑点则递归,若为白点且为封闭块则个数加1,最后再次...原创 2018-06-02 23:52:41 · 380 阅读 · 0 评论 -
511:Do You Know the Way to San Jose?
Do You Know the Way to San Jose?题目不难,主要就是排序,不过有些细节需要注意。一个很坑的地方是 map 的两个对角点是不确定的,可能是左上和右下,也可能是左下和右上,而且两个点的顺序也不一定是左右。。。害我找了好久的bug。。。还有就是输出的时候注意单词别拼错了,空格别多打了。。因为这个WA了好几发。。AC大概是现在唯一能让我开心的事情了。#in...原创 2018-04-29 23:44:04 · 235 阅读 · 0 评论 -
230:Borrowers
Borrowers又因为输出WA了一发。。。一定要看清楚输出要求啊啊#include<cstdio>#include<iostream>#include<map>#include<vector>#include<cstring>#include<algorithm>using namespace std;cons...原创 2018-04-23 10:48:29 · 153 阅读 · 0 评论 -
220:Othello
Othello我的这道题的代码还是比较简洁的哈哈。version 1:#include<cstdio>#include<cstring>using namespace std;int n,wn,bn;int dxs[3] = {0,1,-1};int dys[3] = {0,1,-1};char c,gamer,cmd[5],game[9][9];char r...原创 2018-04-13 13:30:19 · 163 阅读 · 0 评论 -
221:Urban Elevations
Urban Elevations书上的思路(离散化):把所有x坐标排序去重,则任意两个相邻x坐标形成的区间具有相同属性,一个区间要么完全可见,要么完全不可见。这样,只需在这个区间里任选一个点(例如中点),就能判断出一个建筑物是否在整个区间内可见。如何判断一个建筑物是否在某个x坐标处可见呢?首先,建筑物的坐标中必须包含这个x坐标,其次,建筑物南边不能有另外一个建筑物也包含这个x坐标,并且不比它矮。代...原创 2018-04-18 23:18:08 · 153 阅读 · 0 评论 -
1225:Digit Counting
Trung is bored with his mathematics homeworks. He takes a piece of chalk and starts writing a sequenceof consecutive integers starting with 1 to N (1 < N < 10000). After that, he counts the numb...原创 2018-04-04 22:49:55 · 163 阅读 · 0 评论 -
1586:Molar mass
An organic compound is any member of a large class of chemicalcompounds whose molecules contain carbon. The molarmass of an organic compound is the mass of one mole of theorganic compound. The molar m...原创 2018-04-04 22:11:03 · 130 阅读 · 0 评论 -
1585:Score
There is an objective test result such as “OOXXOXXOOO”. An ‘O’ means a correct answer of a problemand an ‘X’ means a wrong answer. The score of each problem of this test is calculated by itself andits...原创 2018-04-04 21:46:50 · 278 阅读 · 0 评论 -
512:Spreadsheet Tracking
UVa - 512 Spreadsheet Tracking思路1:首先模拟操作,算出最后的电子表格,然后在每次查询时直接在电子表格中找到所求的单元格。#include<cstdio>#include<cstring>using namespace std;const int maxn = 100,big = 10000;char cmd[10];int r,c,...原创 2018-04-11 20:41:38 · 205 阅读 · 0 评论 -
1584:Circular Sequence
Some DNA sequences exist in circular forms as in the following figure, which shows a circular sequence “CGAGTCAGCT”, that is, the last symbol “T” in “CGAGTCAGCT” is connected to the first symbol “C”...原创 2018-04-04 13:03:09 · 104 阅读 · 0 评论 -
1583:Digit Generator
For a positive integer N, the digit-sum of N is defined as the sum of N itself and its digits. When M is the digitsum of N, we call N a generator of M. For example, the digit-sum of 245 is 256 (= 24...原创 2018-04-04 11:44:12 · 105 阅读 · 0 评论 -
12096:The SetStack Computer
The SetStack Computer为每个不同的集合分配一个唯一的ID,则每个集合都可以表示成所包含元素的ID集合,这样就可以用STL的set<int>来表示了,而整个栈则是一个stack<int>。#include<iostream>#include<cstdio>#include<map>#include<set&g...原创 2018-04-16 21:45:33 · 477 阅读 · 0 评论 -
213:Message Decoding
Some message encoding schemes require that an encoded message be sent in two parts. The first part, called the header, contains the characters of the message. The second part contains a pattern that r...原创 2018-04-11 10:17:46 · 149 阅读 · 0 评论 -
815:Flooded!
Flooded!思路:题目中说了不需要考虑几个坑是分开的那种情况,所以可以将所有的方格由低到高排序排序,从最低的方格开始灌水,如果可以淹没它,增加淹没面积、海拔高度和淹没个数,减少体积,再接着看下一个方格,否则计算终高度然后 break 即可。刚开始 WA 了,我还以为是浮点数精度的问题,尽可能的提高精度之后还是WA,后来发现是输出格式的问题。。。和之前不一样,不是两个 case 之间有空格,是每...原创 2018-04-14 22:10:28 · 217 阅读 · 0 评论 -
455:Periodic Strings
A character string is said to have period k if it can be formed by concatenating one or more repetitionsof another string of length k. For example, the string ”abcabcabcabc” has period 3, since it is ...原创 2018-04-05 00:20:28 · 133 阅读 · 0 评论 -
227:Puzzle
A children’s puzzle that was popular 30 years ago consisted of a 5×5 frame which contained 24 smallsquares of equal size. A unique letter of the alphabet was printed on each small square. Since therew...原创 2018-04-05 13:17:58 · 147 阅读 · 0 评论 -
1588:Kickdown
KickdownTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 2214 Accepted: 944DescriptionA research laboratory of a world-leading automobile company has received an order to create a special tra...原创 2018-04-06 22:50:34 · 300 阅读 · 0 评论 -
1590:IP Networks
IP Networks注意单个IP地址及网络地址后面加 .0 的情况(cnt < 3)。version1:#include<cstdio>#include<cstring>using namespace std;const int maxn = 1000 + 5;int n,num[maxn][4];int main(){ while(scanf("...原创 2018-04-12 21:56:06 · 130 阅读 · 0 评论 -
1587:Box
BoxTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4196 Accepted: 1518DescriptionIvan works at a factory that produces heavy machinery. He has a simple job -- he knocks up wooden boxes of di...原创 2018-04-06 20:15:57 · 170 阅读 · 0 评论 -
12100:Printer Queue
Printer Queuepriority_queue + queue#include<cstdio>#include<queue>using namespace std;const int maxn = 500000;int t,n,pos;int main(){ scanf("%d",&t); while(t--){ s...原创 2018-04-22 16:51:42 · 228 阅读 · 0 评论 -
1595:Symmetry
Symmetry我的思路:开始是想着将所有点都存在set里面,找出对称轴,然后对于每一个点确定其对称点是否存在,但是觉得这样效率似乎太低,就放弃了。后来想到了这样做:将所有点按x坐标进行排序,若x坐标相同,则对于对称轴左边的点按y坐标又小到大排序,右边则相反。这样的话如果这些点是左右对称的,那么两端的点一定是对称的,因为经过我上面的排序其实相当于用一维数组将各点在平面上的相对关系表现了出来。然后依...原创 2018-04-22 15:41:46 · 221 阅读 · 0 评论