【RevolC FaeLoN Uva 10972】】的更多相关文章

·无向图转有向图,经典而美妙. ·英文题,述大意:       输入一个无向图(不一定联通),现在询问:是否可以将每一条无向边定向,并为新图添加最少的新的有向边,使得原图强联通. ·分析:       静静地分析 #include<stdio.h> #include<algorithm> #include<cstring> #define go(i,a,b) for(int i=a;i<=b;i++) #define fo(i,a,x) for(int i=a[x…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 题目很迷啊. 不会出现盆地? 可以理解为一条线. 从左往右高度上升的一座座山. 然后V升的水从最左边的山倒进去. 然后问你最后海拔多高.. (为什么是这样啊??? 鬼知道... 所以每次只要看看前i个山同时升高a[i+1]-a[i]是不是小于等于rest就好. 小于等于的话.就能持续升高. [代码] #include <bits/stdc++.h> #define rep1(i,a,b) for (int i = a;i &l…
[链接] 我是链接,点我呀:) [题意] [题解] 一个单位时间.一个单位时间地模拟就好. 然后对于每个人. 记录它所处的周期下标idx 每个单位时间都会让每个人的idx++ 注意从醒着到睡着的分界线的处理就好. 可以多循环几次..超过上限认为无解 (其他题解也提供了一种方法,就是如果状态和初始的情况相同的话.就无解了即形成了一个环. (可能如果无解一定会形成环? [代码] #include <bits/stdc++.h> #define rep1(i,a,b) for (int i = a;…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果一行里面某位有>1个x 那么是invalid的. 没有x的话. 可以分析以下(设输入的标准Even为0,然后Odd为1) (列出所有情况分析后会发现.) 那么必须满足标准^这一列该位的亦或和==0 x只有1个的情况的话.也应该满足这个,所以就能根据上面这个求出x是啥啦. 末尾添加0 是添加(4-len%4)个...不是len%4个.. (如果len%4!=0的话) [代码] #include <bits/stdc++.h&…
[链接] 我是链接,点我呀:) [题意] 给你每个字母对应的摩斯密码. 然后每个单词的莫斯密码由其组成字母的莫斯密码连接而成. 现在给你若干个莫斯密码. 请问你每个莫斯密码对应哪个单词. 如果有多个单词和他对应.那么输出字典序最小的那个. 如果没有单词和他对应. 那么,你可以删除或者添加若干字母(只能一直删或一直增加) 问你在这种情况下能匹配到的单词(要求添加或者删的单词的数量最小) 如果有多种可能.输出字典序最小的. 如果一直删除.一直增加也找不到. 那么输出所有单词里面字典序最小的哪个. […
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 绕(x,y,z)三个轴旋转. 枚举x,y,z各4次的结果. (4次之后能还原.可以方便上一层枚举下一个情况.) [代码] #include <bits/stdc++.h> #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) using namespace std; const in…
[链接] 我是链接,点我呀:) [题意] [题解] legal被我打成leagal... 然后注意输出坐标的时候,格式是%2d.. 然后就没啥难的了.. [代码] #include <bits/stdc++.h> using namespace std; const int dx[8]={0,-1,-1,-1,0,1,1,1}; const int dy[8]={-1,-1,0,1,1,1,0,-1}; const int N = 10; char s[N+10][N+10]; char op…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 每个操作对与一个点来说变化是固定的. 因此可以不用对整个数组进行操作. 对于每个询问,遍历所有的操作.对输入的(x,y)进行相应的变换就好了. 数据之间有空行. [代码] /* ope=0 EX操作 交换a[x1][y1],a[x2][y2] ope=1 DR操作 删除v中的行(无序) ope=2 IR操作 在v中的位置插入空行(无顺序) ope=3 DC操作 删除v中的列(无序) ope=4 IC操作 插入v中的列(无序) *…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 输入的二进制长度最长为7 所以得开个sta[7][2^7]的样子才存的下所有的字符的.. 定义这么一个数组当字典. 然后一个字符一个字符地读..组合成题目中的参数. 然后根据读入的每个长度为len的二进制,在字典中找到相应的字符就ok啦. [代码] #include <bits/stdc++.h> using namespace std; string s; char dic[100][100]; int readbinary…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 写个数组模拟链表 但注意,得用个辅助数组flag.. 不然可能会出现没能跳过中间的被占区域的情况. 比如 1 2 idx # # # idx2 8 (#表示已经出去的位置) 这个时候,idx1和idx2删掉的话.(假设先删idx1,后删idx2) r[idx1]无法更新为8.. [代码] #include <bits/stdc++.h> using namespace std; const int N = 20; int n,…