紫书
水牛的梦想
沙雕一枚,时而有点高冷
展开
-
例题6-4 破损的棋盘 uva 11988
这道例题涉及了一些单向链表的用法,第一,单向链表在记录的时候,只考虑他后面是谁,那么第一个数怎么办呢,通过虚设初始 next[0] 来存第一位,而什么时候在最后一位即nex[pos] = 0的时候第二,数字字母需要学会看成一题,即在写链表的时候,用数字代替字母代码如下#include <bits/stdc++.h>using namespace std;const int...原创 2019-10-29 17:51:53 · 131 阅读 · 0 评论 -
习题 4_8 uva12108 特别困的学生(小模拟)
这题要看图,只要对于图看懂了,就莫得问题了,我采用的是判断当前,每次循环 +1,如果超出周期,则说明人醒了要等于 1然后判断当前睡着还是醒着就行了接下来是对于临界于即将睡觉的人群的判断,如果他只能坚持,那莫得办法,让他 周期为0,等下一次加一则刚好为 1 完美!#include <bits/stdc++.h>using namespace std;int main(){...原创 2019-08-17 22:08:51 · 142 阅读 · 0 评论 -
习题5_6 uva1595对称轴
我是一颗不会说话的菜…这题wa了一晚上,惊了,我被题目骗了,说好的x 的范围是 -10000到10000 呢我暴力枚举了 对称轴的x…wa了一晚上,然后隔天测了一下下x的范围(写个死循环)—果然,T了…好不说废话这题要抓住其对称二字,那么很容易的想到,其对称轴就是最左边的x 和最右边的 x 的一半,又因为这么做可能会出现浮点数造成浮点误差,那么我们可以同时 对所有 X *2 ok,浮点消...原创 2019-08-27 12:42:19 · 349 阅读 · 0 评论 -
习题5_8 uva230 图书管理系统 (小模拟)
这题主要相通几个点就行首先是 存书和人名 ,然后分割字符串呢?提示 中 书没有双引号 所以可以通过计算双引号的个数来确定书名,而人名 不就在 ”by“ 之后吗 ,那么判断 出现”by“ 不就好了? 不行,因为书名中可能出现by !所以再加个双引号个数为2的条件,就独一无二!接下来是模拟管理,书名不同,我们可以用一个 map 储存书的状态 ! 当然,排序是必不可少的然后对于 每次 的 输...原创 2019-08-27 14:25:10 · 157 阅读 · 0 评论 -
习题5_9 uva1596 找bug
真的,看到题目就不想写,因为莫得思路,然后还是写了…这是到模拟加特判的题首先要想如何输入,就判断一下是不是第一个字符串就输出“.” 就行啦第二,储存,本来想用set之类的,最后敲定了map ,想想来个字符串对数字,有觉得字符串转数字不想写,所以就直接存字符串了…例如 da[a] = 15623, 然后对于 a数组的数,可以da[a125] = 123 这样存就ok第三,就是对那种s[a[...原创 2019-08-29 17:00:24 · 171 阅读 · 0 评论 -
习题 5_10 uva1597 在web中搜索
这题不难,只要有点 STL 的知识就行了关于文章而言,肯定是每篇文章开个结构体去存要存什么内容呢,我存了每行是什么(每行的文本)每行的字典(运用了例题5-3安妮字典中的初始化方法) (用 set)//即使用 stringstream 读行内容,非常好用,全篇文章的 字典(用 map)以及所有文本的字典(map)主要你要搞清楚你要用啥,刚开始不清楚没关系,写着写着,少什么加什么就行...原创 2019-09-02 18:48:45 · 159 阅读 · 0 评论 -
习题5_11 uva12504更新字典
Print a blank line after each test case.emmm被坑了好多次,这句话我现在看懂啦嘿嘿嘿~题目问的是对于两个新旧字典,比较他们的增删改变情况,只要会重载,那都不是事,注意set 的迭代器是木有修改功能的! 只有增删,那咋整?先删后加呗。思路如下:先对旧字典进行遍历,忽然发现新的没有,说明什么?删了呗发现有,比较一下下是否num 一样,不一样?改了呗...原创 2019-09-03 18:13:04 · 89 阅读 · 0 评论 -
习题3_1 uva1585 得分
这题考的是如何连续记录O, 用个变量进行记录当前到了多少,如果碰到O 该值就++不然就清空#include <cstdio>#include <cstring>using namespace std;int main(){ int n; scanf("%d",&n); while(n--) { char s[90]={'\0'};...原创 2019-09-05 10:26:45 · 129 阅读 · 0 评论 -
习题 3_2 uva1586 分子量
这题无非就两种情况一种为后面有数字一种后面没有数字我的做法是判断下一位是不是数字如果是数字就一直继续到莫得数字停下保证停的位置是字符,然后边界(就是最后一位)特判一下就ok啦至于某字母对应问题,我是很想用map,但是用函数也是不错滴#include <bits/stdc++.h> using namespace std;const double qaq[4]={12.0...原创 2019-09-05 10:33:52 · 92 阅读 · 0 评论 -
习题3_3 uva 1225 数数字
这题难点在于,你如何对于数字进行处理,从而得到它每位的数就用 (%10 /10)大法! 特别好用!请记住哦而我对于数据小的,比较喜欢打表,就是,把所以情况都整一遍啦#include <cstdio>#include <cstring>using namespace std;int a[10][10005];int main(){ int n; sca...原创 2019-09-05 10:40:28 · 75 阅读 · 0 评论 -
习题3_4 uva 455 周期串
因为这题的数据比较小,所以可以直接暴力就 从 1-n 枚举其的长度,如果它成功,那就直接跳出去,#include <cstdio>#include <cstring> using namespace std;int main(){ int n; scanf("%d",&n); while(n--) { char s[100]; scanf...原创 2019-09-05 10:50:17 · 104 阅读 · 0 评论 -
习题 3_5 uva 227 谜题
学会处理字符,是写这题的关键,字符确实不好玩,因为各种各样记不住呜呜呜为了读入一整行 先学了 scanf("%[^\n]",&a[0]) 注意人家是不吃换行符的! 所以必须用一个getchar() 帮他吃掉 然后读这个表就莫得问题了就是来是巨坑无比的读命令…人家居然会换行?!!!没事!整个特判解决一切 !getchar 拯救世界!然后接下来就先把空格确定了然后一步步模拟模拟...原创 2019-09-05 11:58:20 · 130 阅读 · 0 评论 -
习题 3_6 uva232 纵横字谜的答案
这题我感觉主要是要理解他的输出,可发现他的输出是从编号小到大依次来的,并且每个字母只可用一次,所以只要初始化正确,开个数组存编号,再来一个存使用情况,就ok反正就两步,找起始点,输出横的单词,后输出列的单词(小心是两组之间要有空行哦)#include <bits/stdc++.h>using namespace std;int main(){ int r,l,wen ...原创 2019-09-05 12:22:21 · 118 阅读 · 0 评论 -
习题5_14 uva1598交易所(想看题意搓进来)
说声抱歉,这题写的代码有点乱,所以后面有时间再改,虽然AC了先讲思路,防止以后自己忘了…这题主要题意为多组数据,每次很多交易记录,如果此时买的时候,发现有比他内心价格还低的价格,就买,卖的时候,发现有比他心中价格高的,就卖,如果没买完或者卖完,放着剩下的等待,如果在买或者卖之时,发现有人出价相同,那么编号在前的先来(防止打打杀杀)。如果还有一个是废除编号第几的命令(保证只废除买或者卖的),...原创 2019-09-06 11:32:03 · 182 阅读 · 0 评论 -
习题 4_10 uva 815 洪水!(注意此题的换行打错是wa,必须每个输出后打空行!)
这题读懂题意就可以了,意思是说从最低海拔开始灌水,每到下一个比他高的海拔则面积又加100(10*10),问最后水平面海拔是多少?那么 :先排序此时分三种情况:爬的到下一个,虚了,爬不动了,(外面在判断是否有水没灌) 有的话比顶峰还高代码如下:#include <bits/stdc++.h>using namespace std;int main(){ int n...原创 2019-08-17 21:09:41 · 130 阅读 · 0 评论 -
习题5_5 uva0391 复合词(看了<set>)
太菜了,又是想半天想不出来…主要的卡点是120000 个单词如果 暴力每个单词先找前面的单词是否 是 它的前缀,然后再判断里面是否有 其后缀 ,o(n*n)算法…这题的字典序排序在提醒大家,为(n logn)算法,而二分可以!那么怎么二分呢,巧妙利用隐藏bug!单词本身 长度不会超过100!那么暴力枚举其前缀和后缀,并查询,用什么查询(nlog n)? set !ok,上代码#in...原创 2019-08-25 20:57:02 · 100 阅读 · 0 评论 -
习题4_3uva220 黑白棋
啊嘎嘎嘎嘎(只可意会的笑声)当我交上去开到 格式错误而不是哇了,啊嘎嘎嘎嘎这是初恋的感觉!为啥格式错误 Black - %2d White - %2d(%2d!!!!)思路 死命爆摸吧,不就8个方向emmmmmm先把输入输出函数写好(听说这叫自上而下),在搞函数,不崩溃你就赢了!具体细节看代码#include <bits/stdc++.h>using namespac...原创 2019-08-14 10:31:00 · 93 阅读 · 0 评论 -
例题5-5uva12096集合栈计算机(看)
这题思想在于: 转化用集合去套集合是明显不行的(可能也是我菜)所以 可以给每个不一样的集合分配一个ID, 用map那么我们对于集合栈而言就只要存“整型”(即每个集合的ID即可)而那光存ID没用啊,如果用到集合咋整,所以再开个 map 用ID找他所对应的集合此时的 pull 和 dup 就解决了还有三个分别交、并、舔 ,肯定就是拉出她们对应的集合搞事情,这时的我们要明白,我们存的...原创 2019-08-18 16:33:34 · 107 阅读 · 0 评论 -
习题4_4uva253 骰子涂色
这题emmm本来想找规律的,结果莫得规律只得爆摸…看刘大大写的那弄那24种排列用了我看不懂的东西…但其实自己模拟,会特别简单,如图其实也就3种情况…每一种中间4个走个轮回就4种了…所以有12种,然后上下颠倒你会发现,其实只要把你原来的12种从后往前读即可…所以24种,不说了,卡在这么水的一题2天…不暴力就会败北…代码如下#include <bits/stdc++.h>u...原创 2019-08-14 11:04:11 · 118 阅读 · 0 评论 -
关于uva使用
看题请用 洛谷 https://www.luogu.org/problem/list?keyword=uva201&page=1交题用 vjudge https://vjudge.net/problem/UVA-253一起来玩!原创 2019-08-14 11:09:22 · 1048 阅读 · 0 评论 -
习题4_2 uva201 正方形
这题我还是选择了看题解的思路想不到想不到,是我菜了其实题目的提示的老明显了,H与V一个横一个竖,说明对一个点来说,要分横竖把其可连的边储存,(注意存的时候要保持V和H 行与列保持一致!!!)然后又是求有多少个正方形,来一波暴力枚举(反正最多64个点)存的时候存的是其每个点最多可以有多长的边,对于该点,一右一下,分别用 hc与 vc 储存有人就问,这不就才两条边吗,一个正方形有四条边啊,...原创 2019-08-14 11:37:48 · 170 阅读 · 0 评论 -
习题4_6 uva508 莫尔斯电码
事实证明看不懂英文的代价是惨痛的=_=// 可能你会一直哇 一时wa题一时爽,一直wa题一直爽 o_o题目意思:匹配 : 若有一个完全匹配,则输出该单词,若有多个,则输出 字典序最小的单词 + “!”else 找模糊匹配,找到增删最少的,输出,若有多个,同上,输出字典序最小的单词不管几个 都加 “?”else 输出 字典中字典序最小的单词 + “?”(单组输入emmm)好像…看...原创 2019-08-15 11:48:19 · 192 阅读 · 0 评论 -
习题4_5 uva1590 IP网络
题目大意,把他们全部化为二进制,然后从高位到低位找不同,当发现不同时,哦吼一声,m(即题目中的n) = i+1(若无·发现不同,这就是天生的一对(说白就是一模一样),此时的 n 应为 0 ,所以初始化为 0 ) 然后再把网络地址和子网掩码算一下下就好啦,小模拟#include <bits/stdc++.h>using namespace std;int bit[1005][40]...原创 2019-08-15 11:51:02 · 133 阅读 · 0 评论 -
习题5-1 uva593代码对齐(最后单词无空格!!!)
这题 就是开个string 就没啥了怎么对齐呢,开个数组 ,保存每一列的单词长度最大值,输出 用个自动补齐空格的函数(手写啊)曾刘大大用过默默记住了 -只要行列不乱都好说上代码#include <bits/stdc++.h>using namespace std;string str[1005][200];int len[1005][200];int maxn...原创 2019-08-24 15:13:24 · 76 阅读 · 0 评论 -
习题5_2 uva1594 Duccl序列
水题,比特别困的学生还没有思维量,小小模拟就好直接上代码#include <bits/stdc++.h>using namespace std;int main(){ int t,y[20]; scanf("%d",&t); while (t--) { int n,f[20],ok = 1; //f储存现在 scanf("%d",&n); ...原创 2019-08-24 15:29:55 · 268 阅读 · 0 评论 -
习题5_3 uva10935 卡片游戏
我爱水题,水题爱我!(毫无防备地留下了菜 的泪水)这题仅仅考 queue 的简单运用#include <bits/stdc++.h>using namespace std;int main(){ int n; while(scanf("%d",&n) == 1 && n) { queue<int> q; int f = 0;...原创 2019-08-24 15:48:06 · 129 阅读 · 0 评论 -
习题5_4 uva10793交换学生
哎,英语不好,地动山摇…这题的意思是说 如果有人从A 到 B 就必须有人从 B 到 A注意 每个人来说都是不一样的!例如前面出现1 22 1此时后面再只出现一个 1 2 那么是NO! 此 1 2 非匹 1 2!!!!!!我刚开始就是因为他们一样,我就想这样好难,map不行,因为可能一对多,而且要去重?好,用set即可!(傻子)开个结构体,一个 x,一个 y ,那么如何判断出现了两...原创 2019-08-25 02:02:09 · 104 阅读 · 0 评论 -
例题5-9 uva1952数据库
nice! 一遍A! 莫得看题解!并查集多了,就总想着找爸爸,爸爸去哪了?题意:就是给你一个n*m 的 数据库, n 行 m 列, 每列的数据用 , 隔开然后问是否存在满足 (r1,c1)=(r2,c1) (r1,c2)=(r2,c2) (只要一组满足即可)若存在 NO 及 r1,r2,c1,c2; 不存在 YES想法: 先是把他行列分好 很随意的做就行了 (如代码)后面我们来波...原创 2019-08-20 22:44:54 · 121 阅读 · 0 评论 -
习题4_1uva1589象棋
真好,一不小心忘判断卡马脚,改了就过了!思路:求封锁的位置(即走到那会被吃,和原来的棋盘分开保存使其互不干扰)那就模拟呗将:先杀,杀到有人,那个人杀了,然后停车:和将一毛一样,只不过多了3方向…炮:先找到自己的另一半,后面就可以开始杀人了,杀到小二(第二个遇到的点)来了,因为小二把自己emmm,所以小二也杀了,然后退隐江湖(4方向)马:当我者,独有马脚,所以特判马脚不就好了,就4个嘛…...原创 2019-08-13 19:35:46 · 94 阅读 · 0 评论