题库_UVA
Chook_lxk
你前程有在,但须澄心猛省,不可自甘堕落。
展开
-
UVA - 307 Sticks(dfs + 剪枝)
点击打开题目链接 Sticks DescriptionGeorge took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgo原创 2017-05-11 22:49:29 · 1079 阅读 · 0 评论 -
UVA - 1596 Bug Hunt(STL)
点击打开题目链接 找第一个bug所在行 bug: 1.数组越界 2.使用未初始化的数组元素 两个map,分别存取数组的大小和某一元素的值。处理嵌套数组时可以递归,也可以从串最后往前迭代遍历。 代码: #include using namespace std; typedef long long ll; const ll maxn = 1e15; mapint, int> mp;//原创 2018-02-02 12:06:57 · 231 阅读 · 0 评论 -
UVA - 12412 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)(模拟)
点击打开题目链接 题目大意: 编写一个成绩管理系统(SPMS).最多100个学生,每个学生有学生编号,班级编号,姓名,四科成绩四个属性。要求实现: 1.添加学生 2.删除学生 3.打印学生信息 4.显示排名(其实就一句话) 5.显示各班级的成绩总结 6.退出 1.用string表示的字符串,没用char数组,printf输出的时候要加c_str()函数。 2.题目要求100人,原创 2018-01-26 16:26:33 · 294 阅读 · 0 评论 -
UVA - 12657 Boxes in a Line(双向链表)
点击打开题目链接 数组实现双向链表模拟操作。 lrj代码技巧是采用了一个标记变量,避免了操作4对所有元素指针的修改,并能统一其他操作。 swap用来处理当op=3时l[x]=y的情况,和后面l[y]=x统一。 代码: #include using namespace std; typedef long long ll; const int maxn = 100000 + 5; in原创 2018-02-03 16:29:34 · 246 阅读 · 0 评论 -
UVA - 1589 Xiangqi(模拟)
点击打开题目链接 题目大意: 考虑一个象棋残局,红方有n个棋子,黑方只有一个将。红方除了一个帅(G)外还有三种可能的棋子:车(R),马(H),炮(C),并且需要考虑“蹩马腿”与将帅不能照面的规则。 输入所有的棋子位置,保证局面合法并且红方已经将军。判断红方是否已经把黑方将死。 思路: 遍历黑将能走的所有点,判断是不是在红子攻击范围,边界情况(黑将走一步可能吃掉红子)覆盖处理。 代码:原创 2018-01-27 17:56:29 · 315 阅读 · 0 评论 -
UVA - 12171 Sculpture(离散化+bfs)
点击打开题目链接 由n个方块组成雕塑,方块直接可以重叠和嵌套,已知每个方块最小顶点坐标值和长宽高,求形成雕塑的体积和表面积。 首先离散化坐标,将1001 * 1001 * 1001的密闭空间分成100 * 100 * 100个小方块。然后对空气块种子填充,求出空气块体积及内表面积。 代码: #include<bits/stdc++.h> using namespace s...原创 2018-02-09 11:31:20 · 356 阅读 · 0 评论 -
UVA - 210 Concurrency Simulator(双端队列)
点击打开题目链接 用一个双端队列deque存等待队列,一个普通队列存阻止队列,然后进行各项操作的模拟 一开始用的结构体存每个程序,然后队列里面存的也是结构体,T了。然后改用vector存程序,队列存每个程序的标号。 代码: #include using namespace std; const int maxn = 1000 + 5; queueint> stop; dequeint原创 2018-02-04 18:53:13 · 286 阅读 · 0 评论 -
UVA - 220 Othello(模拟)
点击打开题目链接 一秒钟想思路,一下午调BUG 注意的地方: 1.输出格式最后不要多加空行。 2.坐标之间一个空格间隔,行尾没空格 3.棋子数的输出%2d 4.No legal move.(我忘了点,udebug样例全过了,找了半天才找出来TAT) AC代码: #include #include #include using namespace std; int mp[10原创 2018-01-28 20:04:47 · 271 阅读 · 0 评论 -
UVA - 122 Trees on the level(二叉树的构建+宽度优先遍历)
点击打开题目链接 层序遍历输出二叉树节点值。 存储结构可以是结构体+指针,也可以数组+下标 lrj代码对字符串的处理比较灵活。 代码: #include using namespace std; const int maxn = 256 + 5; const int root = 1; vectorint>ve; int l[maxn], r[maxn]; int cnt; int原创 2018-02-05 11:32:21 · 268 阅读 · 0 评论 -
UVA - 1572 Self-Assembly(拓扑排序判断成环)
点击打开题目链接 有n种边上带标号的正方形,每种无穷多个,特定标号可以相连,判断是否能够组成无限大空间结构。 标号做点,正方形作边,构建有向图,拓扑排序判断是否成环即可。 代码: #include<bits/stdc++.h> using namespace std; const int maxn = 52; int n; string s; int vis[maxn];...原创 2018-02-10 18:01:37 · 301 阅读 · 0 评论 -
UVA - 509 RAID!(模拟 + 异或)
点击打开题目链接 给出数据块,判断合法性,合法则恢复并输出完整的数据。非法则报告磁盘非法。 合法: 1.任意一列如果没有x则应该满足奇校检或偶校检条件(即1的个数为奇数或者偶数)。 2.某一列如果有x,只允许有一个。 代码: #include using namespace std; char mp[8][8000]; int d, s, b; char c; int op; in原创 2018-01-30 12:01:36 · 606 阅读 · 0 评论 -
UVA - 221 Urban Elevations(离散化思想)
点击打开题目链接 给出n个建筑物的左下角坐标和长,宽,高等属性。输出正视图中所有能看到的建筑物的标号,要求按照建筑物左下角坐标从小到大输出,x坐标相同时优先输出y小的。 思路: 将所有建筑物按照先x再y排序,然后对x坐标进行离散化处理。 即对所有x坐标排序去重,则相邻两个坐标区间只有一种状态,要么区间完全可见,要么完全不可见,取区间中点然后遍历所有建筑物,就能得出建筑物是否可见。 代码:原创 2018-02-06 13:39:18 · 283 阅读 · 0 评论 -
UVA - 1599 Ideal Path(双向bfs + 字典序 + 输出路径)
点击打开题目链接 给一个n个点m条边的无向图,每个边标记一种颜色(1~1e9),求一条从1到n的路径,使得经过边尽量少的前提下颜色序列字典序最小。 思路: 1.忽略自环的边,用邻接表建图 2.逆序bfs求出每个顶点到n的最短距离。 3.顺序bfs从顶点1开始按照每次到n最短距离-1来寻找剩余顶点,多个顶点满足时按照最小颜色走,颜色相同时进队列,最小颜色记在ans[]中。 *vis[]保...原创 2018-02-11 18:57:55 · 344 阅读 · 0 评论 -
UVA - 506 System Dependencies(STL + 模拟)
点击打开题目链接 组件之间具有依赖关系,模拟实现组建的安装和删除操作。 指令 说明 DEPEND item1 item2 [item3 …] 安装item1需要先安装item2(、item3……) INSTALL item1 安装item1和它的依赖(已安装过的不用安装) REMOVE item1 移除item1及其依赖的全部组件,如果组件被...原创 2018-02-12 12:38:15 · 256 阅读 · 0 评论 -
UVA - 177 Paper Folding(规律 + 模拟)
点击打开题目链接 题目大意: 一张纸,不断从右往左对折n次, 原来的大纸会变成一个窄窄的纸条。现在把纸条沿折痕打开,每次打开“一半”, 即把每个痕迹做成一个直角,将最下面的纸水平放置保持不变,展开后沿着纸面平行的方向会形成一个美妙的曲线,输出曲线。 思路: n = 1时 路径:ru n = 2时 路径:rulu n = 3时 路径:rululdlu n = 4时 路径:rululdl...原创 2018-03-06 22:35:21 · 487 阅读 · 0 评论 -
UVA - 1614 Hell on the Markets(贪心 + 结论)
点击打开题目链接 题目大意 给定n个数,满足1<=a[i]<=i; 使其中某些数变成倒数使得n个数总和为0; 思路: 结论:n个数可以组成1~sum[n]的任意数 证明: 当n = 1时, a[1] = 1 = sum[1] 满足; 假设当n = k时满足; 当n = k + 1时: sum[k+1] = sum[k] + a[k+1]; 因此只需证明能凑出sum...原创 2018-03-08 15:59:56 · 345 阅读 · 0 评论 -
UVALive - 7544 Banking II(dp)
点击打开题目链接A month ago at the South Pacific Divisional Contest, each of you (or one of your teammates) solved a problem about authenticating users. To refresh your memory: The Actuarial Commerce Merchant原创 2017-12-04 17:29:05 · 478 阅读 · 0 评论 -
UVALive - 7636 Rational Grading
点击打开题目链接 今天听到了WWe葬爷和战神高博都宣布退役了,一阵心酸。当我一开始看WWe的时候就看的葬爷,他们两个在WWe都贡献了二三十个年头,致敬。 题目大意很好懂,唯一绕的点就是如果一条指令是错误的,下一个指令要根据上一次错误的数据继续判断。(T~T请原谅我表达能力差)举例来说如果原数是111;判断++i是否为133;显然是错误的,然后下一条指令是++i是原创 2017-04-05 20:49:47 · 624 阅读 · 2 评论 -
UVA - 10382 Watering Grass (贪心+区间覆盖)
点击打开题目链接 题目大意: 给出长为l,宽为w的一块长方形草地。草地上有n个喷头,给出每个喷头的圆心坐标及半径。求解最少需要多少喷头覆盖整个长方形。 思路: 将圆形区间转化成长方形区间。每个圆与草地相交的四个点为长方形的四个顶点。然后贪心求解。 附上AC代码: #include #include #include using namespace std; const int max原创 2017-08-24 09:55:30 · 446 阅读 · 0 评论 -
UVA - 11175 From D to E and Back
点击打开题目链接 From D to E and BackDescriptionTake any directed graph D with n vertices and m edges. You can make the Lying graph E of B in the following way. E will have m vertices, one for each edge of D原创 2017-05-12 23:30:01 · 1054 阅读 · 0 评论 -
UVA - 11300 Spreading the Wealth(公式推导+中位数)
点击打开题目链接 Spreading the WealthDescriptionA Communist regime is trying to redistribute wealth in a village. They have have decided to sit everyone around a circular table. First, everyone has converted原创 2017-05-13 10:20:12 · 1000 阅读 · 0 评论 -
UVALive - 3635 Pie(二分答案查找)
点击打开题目链接 Time limit: 1 second My birthday is coming up and traditionally I'm serving pie. Not just one pie, no, I have a numberNof them, of various tastes and of various sizes.Fof my原创 2017-05-16 23:25:54 · 456 阅读 · 0 评论 -
UVA - 1395 Slim Span(最小生成树)
点击打开题目链接 题目大意:给出一个n节点的图,求出最大边减最小边尽量小的生成树。 思路:kruskal + 暴力枚举每一个l,判断生成树的苗条度是否最小。 附上AC代码: #include #include #include #include using namespace std; const int maxn = 10000 + 5; int par[maxn];原创 2017-05-17 22:27:40 · 1390 阅读 · 0 评论 -
UVA - 1151 Buy or Build(最小生成树+二进制枚举子集)
点击打开题目链接 题目大意:给出n个点的坐标,连边的费用为两端点的欧几里得距离。给出q种套餐,购买某种套餐花费Ci,该套餐中所有点将连通,求最小花费。 思路:读完题后知道是kruskal最短路问题,但如果枚举所有套餐,规模太大肯定超时。 所以需要优化:先kruskal求一次得到n-1条边,然后从这n-1条边中用二进制枚举子集的方法枚举套餐。 附上AC代码: #includ原创 2017-05-18 15:16:47 · 667 阅读 · 0 评论 -
UVA - 10652 Board Wrapping(计算几何-凸包)
点击打开题目链接 第一次做计算几何的题,真切感受到数学不好是最致命的,半天连一个角度化弧度都想不出(可以看出我数学有多坨 TAT ),题目本身理解不难,但是需要各种功能函数的实现,组合。计算几何的题以后还是要多做。 题目大意:用一个尽量小的凸多边形包起n块矩形木板,计算木板面积与整个包装面积的百分比。 思路:每块木板的四个点都作为输入,求出的凸包就是包装。 附上AC代码:原创 2017-05-18 17:41:54 · 633 阅读 · 0 评论 -
UVA - 1592 Database(枚举+map)
点击打开题目链接 Database Peter studies the theory of relational databases. Table in the relational database consists of values that are arranged in rows and columns. There are different normal forms tha原创 2017-04-27 23:21:49 · 1097 阅读 · 0 评论 -
UVA - 11464 Even Parity(暴力枚举)
点击打开题目链接 题目大意: 给出一个N*N的01矩阵,将矩阵中的t个0换成1,使得每一个数的四个方向的数之和为偶数。求最小的t. 思路: 只枚举第一行,然后推出下几行的数值。枚举第一行用到了位运算的方法. 附上AC代码: #include #include #include using namespace std; const int INF=1e9; int grid[20][2原创 2017-08-08 16:55:06 · 557 阅读 · 0 评论 -
UVA - 208 Firetruck(floyd+DFS)
点击打开题目链接 题目大意: 给出一个无向图及节点n,求解从节点1 到节点n的所有路径,按字典序从小到大输出。 思路: 先用floyd算法求解连通关系,然后dfs求解。(连通关系也可以用并查集) 附上AC代码: #include #include using namespace std; int _map[25][25],path[25],used[25]; int n,u,v; i原创 2017-08-09 10:47:49 · 488 阅读 · 0 评论 -
UVA - 10881 Piotr‘s Ants(思维)
点击打开题目链接 Piotr’s AntsDescriptionPiotr likes playing with ants. He has n of them on a horizontal pole L cm long. Each ant is facing either left or right and walks at a constant speed of 1 cm/s. When t原创 2017-05-15 23:57:02 · 1019 阅读 · 0 评论 -
UVA - 1025 A Spy in the Metro (DP)
点击打开题目链接 Description Secret agent Maria was sent to Algorithms City to carry out an especially dangerous mission. After several thrilling events we find her in the first station of Algorithm原创 2017-08-17 20:04:33 · 290 阅读 · 0 评论 -
UVA - 11181 Probability|Given(条件概率+dfs枚举组合)
点击打开题目链接 N friends go to the local super market together. The probability of their buying something from themarket is p1, p2, p3, . . . , pN respectively. After their marketing is finished you are gi原创 2017-07-27 10:14:02 · 564 阅读 · 0 评论 -
UVA - 1329 Corporative Network(加权并查集)
点击打开题目链接 题目大意: 有N个节点,初始时没有根节点,每次进行I或者E操作。 E u : 算出u到根节点的距离 I u v : 将v作为u的根节点,之间距离为 abs(u-v)%1000; 思路: 因为加权的并查集接触的不多。所有拿到题之后并查集的思想只存在大脑1s,就开是dfs找路径。因为终止条件看做了数字0,提交一直WA,没有超时,以为方法正确(TAT),直接WA到比赛结束。原创 2017-08-18 15:19:22 · 472 阅读 · 0 评论 -
UVA - 1608 Non-boring sequences(递归分治,中途相遇)
点击打开题目链接 题目大意: 给出一个N长度的数字序列,对于任一子序列中,都存在唯一不重复出现的数字,则称为不无聊序列,否则为无聊序列。 思路: 如果某个数字a[i]在序列中只出现一次,那么任何包含a[i]的序列都是不无聊的,则只需要考虑i-1的序列和i+1的序列是否满足。以此类推,递归下去。 问题则转变成判断某个数字在某子序列中是否唯一。方法是用l[i],r[i]两个数组分别记录总序列原创 2017-08-18 17:37:29 · 437 阅读 · 0 评论 -
UVA - 508 Morse Mismatches(模拟)
点击打开题目链接 Samuel F. B. Morse is best known for the coding scheme that carries his name. Morse code is still usedin international radio communication. The coding of text using Morse code is straightfor原创 2017-07-28 19:04:33 · 964 阅读 · 0 评论 -
UVA - 1221/HDU - 2413/POJ - 3343 Against Mammoths(二分+二分图匹配)
今天翻看了一下以前写的博客,从最开始第一次集训去年的4月1号开始写,到现在已经过去一年多时间,以前写的博客,现在看来虽然题目很水(虽然现在也很水=.=),但却是看到一个新的知识点就饶有兴趣地写出来的。而现在却缺了当时的那点魄力。大二已经结束了,大三下学期就要复习考研了,还有上学期一学期的时间,时间已经不那么充裕,还有好多知识点没有学到,但这条路是正确的。脚踏实地,学下去,。初心不改。 题目...原创 2018-07-25 20:16:11 · 252 阅读 · 0 评论