
算法竞赛入门经典
文章平均质量分 68
Strive_Buff
面向未来,才能创造未来。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
uva 1589
题目大意就是: 一个象棋残局,红方有n(2 解题思路: 用一个棋盘保存红方可以打到的地方,看黑方将是否有其余的地方去,在竖直方向只要判断将能去的大方就可以,也就可以将帅和车一起判断, #include #include #include #include using namespace std; char cb[12][10],ab[12][10]; vo原创 2016-09-22 15:31:18 · 778 阅读 · 0 评论 -
uva 136 Ugly Numbers(priority_queue的使用)
题目链接:here 就是保存除了不能被2 3 5 以外的素数整除的数 #include #include #include #include #include #include using namespace std; const int maxn = 1000+10; int main(){ int t; int x=1; //freopen("0原创 2016-09-28 16:26:20 · 386 阅读 · 0 评论 -
uva 540 Team Queue(queue与STL其他容器的综合运用)
题目链接:here 思路还是很简单的,,用map[a][i] 表示编号为a 的人在i的队伍里面,然后用队列表示每个队伍; #include #include #include #include #include #include using namespace std; const int maxn = 1000+10; int main(){ int t;原创 2016-09-28 16:19:42 · 508 阅读 · 0 评论 -
uva 12096 The SetStack Computer(STL)
题目大意: PUSH:向栈中放一个空集合。 DUP:复制栈顶集合。 UNION:取栈顶的两个集合,取并集后放回。 INTERSECT:取栈顶的两个集合,取交集后放回。 ADD:取栈顶两个集合,将第一个集合作为元素放到第二个集合中,并将第二个集合放回栈。 解体思路: 用每个数字代表不同的集合,用放入容器中的顺序代表集合的数字 #include原创 2016-09-27 16:30:57 · 454 阅读 · 0 评论 -
uva 201 Squares
题目大意: 有n行n列(2 解题思路: 模拟,用两个数组模拟行和列,统计时枚举定点扫描 #include #include #include #include #include #include using namespace std; int H[10][10]; int V[10][10]; int main() { int n,m,x,y,T = 0;原创 2016-09-22 17:11:32 · 685 阅读 · 0 评论 -
UVA 1590 IP Networks
题目大意: 给你几个IP求给出ip范围内的最小的ip,(ip范围,可以用一个网络地址和一个子网掩码描述一个ip,其中子网掩码包含32个二进制,前32-n位为1,后n位为0,网络地址的前32-n位任意,后n位为0,所有前32-n位和网络地址相同的ip都属于此网络) 题目连接here 解题思路: ip的四个部分分别处理,每一部分找出最大值的最小值,然后判断是其二进制最后几位不同,得出子网掩码;原创 2016-09-24 13:23:34 · 1105 阅读 · 1 评论 -
uva 815 Flooded!
题目大意: 有n*m(1 解题思路: 题目挺简单的但是一开始没弄还wa了几发,还是太弱了,把输入的内阁格子排序,从小到大算加上水的高度以后比下一块高不高 #include #include #include using namespace std; double p[30*30+10]; int main(){ int n,m; int q=1; // freopen(原创 2016-09-24 20:54:32 · 597 阅读 · 0 评论 -
uva 12108 Extraordinarily Tired Students(特别困的学生)
题目大意: 课堂上有n(ni个学生清醒Ai分钟后睡Bi分钟,然后重复(1 解题思路: 模拟整个过程直到全部清醒或者时间足够长,用Ci表示在周期中的状态时间 #include #include using namespace std; const int maxn=15; int a[maxn],b[maxn],c[maxn]; int main(){ int n; in原创 2016-09-25 11:06:27 · 746 阅读 · 0 评论 -
uva 10474 Where is the Marble?(大理石在哪儿)
题目大意: 有n个大理石,每个大理石上写一个非负整数,首先把各数按照从小到大排序,问Q个问题每个问题问是否一个大理石写着一个数X,如果有,回答那个大理石写着X。 题解: 就排序查找就行,我觉得二分更快,懒得写0.0,#include #include using namespace std; const int maxn=10000000; int a[maxn]; int main(){原创 2016-09-25 14:59:30 · 353 阅读 · 0 评论 -
uva 101 The Blocks Problem
题目大意: 从左到右有n割木块,编号为0~n-1,要求模拟一下四种操作(下面a,b都是木块编号) move a onto b:把a和b上方的木块全部归位然后把a摞在b上面, move a over b:把a上方的木块全部归位,然后把a放在b所在的木块堆的顶部 pile a onto b:把b上方的木块全部归位,然后把a及上面的木块整体摞在b上面 pile a over b:把a原创 2016-09-26 19:53:07 · 504 阅读 · 0 评论 -
uva 10815 Andy's First Dictionary
题目大意: 输入一个文本,找出所有不同的单词按照字典序排序; 解题思路: 把所有单词放在set中,输出,要去掉不是单词的多余的变成空格 #include #include #include #include using namespace std; set dir; int main(){ string s,buf; while(cin>>s){ for原创 2016-09-26 20:01:54 · 351 阅读 · 0 评论 -
uva 156 Ananagrams
题目大意: 输入一些单词,找出所有满足条件的单词,该单词不能通过重排,得到输入文本的另一个单词,在判断满足条件时,不区分大小写,但在输出时保留输入的大小写,按字典序排序 解体思路: 把所有单词保存,在重排后的单词保存在map中,如果map中原来有就键就是0,最后在vector中保存的单词在map中如果有就保存在新的vector中,,最后排序输出 #inc原创 2016-09-26 20:08:06 · 353 阅读 · 0 评论 -
算法竞赛入门经典第四章习题
习题4-1: 题目大意就是: 一个象棋残局,红方有n(2 解题思路: 用一个棋盘保存红方可以打到的地方,看黑方将是否有其余的地方去,在竖直方向只要判断将能去的大方就可以,也就可以将帅和车一起判断, 题解连接:习题4-1,UVA 1589 习题4-2: 题目大意: 有n行n列(2 解题思路: 模拟,用两个数组模拟行和原创 2016-09-25 11:39:33 · 969 阅读 · 0 评论 -
uva 253 Cube painting
题目大意: 给两个正6面体,问二者是否等价,每个面都用6个字母表示; 解题思路: 固定一个面旋转,有四种可能,一共固定6个面; #include #include #include using namespace std; const int N=20; char str[N],str1[N],str2[N]; int dir[6][6]={ {0,1,2,3,4,5},{1,5,2原创 2016-09-22 17:48:34 · 592 阅读 · 0 评论 -
最小树形图
/*本题为不是固定根的最小树形图,我们可以虚拟出一根来,然后在把这个根跟每个点相连,相连的点可以设为无穷大,或者设为所有边和大一点,比如为r,然后就可以利用最小树形图进行计算了,计算出的结果减去r,如果比r还大就可以认为通过这个虚拟节点我们连过原图中两个点,即原图是不连通的,我们就可以认为不存在最小树形图。关于输出最小根也挺简单,在找最小入弧时,如果这条弧的起点是虚拟根,那么这条弧的终点就是要求的原创 2017-12-08 10:28:10 · 396 阅读 · 0 评论