随笔分类 -  UVA

摘要:第八章:高效算法设计 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(30) 评论(0) 推荐(0) 编辑
摘要:思路: 题目中与一般并查集不同的是,要把一个数从一个集合中拿出来,放到另一个集合中 如果现有两个集合 { 1 , 2 } \{1,2\} {1,2} , { 3 } ,\{3\} ,{3} 且p[1]=2 如果要把2拿出来给3 简单的p[2]=3是不行的,因为1也会受到牵连 想法: 可以给数组开 2 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(51) 评论(0) 推荐(0) 编辑
摘要:优化技巧: 将字符串映射成数字,方便存储也加快比较速度(配合map的find函数) #include<stdio.h> #include<iostream> #include<cstdlib> #include<string.h> #include<algorithm> #include<unord 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(20) 评论(0) 推荐(0) 编辑
摘要:思路: 如果遇到一个暴雨天,即a[i]!=0的日子 就找在这个日子之前,且在上一次a[i]之后的日子里的晴天. 我直接用了map来存一个x号池塘的上一次出现的位置. 即只需找从中的晴天(由贪心,应该尽量靠前,才能保证有尽量多的雨天能分配到晴天的日子让龙来吸水) 这题修改了许多次 第一次想用vecto 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(26) 评论(0) 推荐(0) 编辑
摘要:思路是从前往后找前一个数字比后一个数字小的数字 每删除一个数字就使下标前移一位,然后接着找. 如果找不到,说明已经是递减(非递增)的... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(19) 评论(0) 推荐(0) 编辑
摘要:个人认为一个比较好理解的解法. 思路: 先对所有字符串进行排序. 只需考虑中间那两个串.先预先判断一下两个串的相同部分,让下标k预先到两个串不同的部分. 设第n/2个串为a串,它下一个串为b串 当遇到不同的字符直接跳出循环,如果k到了... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(96) 评论(0) 推荐(0) 编辑
摘要:买还是建 Buy or Build - 洛谷 第一道A掉的紫题。。(虽然比较水) 修修改改写了将近五六个小时,还是在紫书的帮助下写的。 不过正解想出来后也就很快A了,(除了忘了重置sum的值WA了一发) 题解: 这题其实相当于一个暴力,... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(21) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P2946 题解: 一道需要进行许多处理的01背包问题 首先由于物品数量有2000多,N*R最高将达到惊人的2×10^8,N*N*R,空间不够用 第一时间想到优化成一维滚动数组 如... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(30) 评论(0) 推荐(0) 编辑
摘要:【题目描述】 从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。 比如,16–9*(4+3)转换成后缀表达式为:16□... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(448) 评论(0) 推荐(0) 编辑
摘要:【题目描述】 给定一棵树,输出树的根root,孩子最多的结点max以及他的孩子。 【输入】 第一行:n(结点个数≤100),m边数≤200)。 以下m行:每行两个结点x和y,表示y是x的孩子(x,y≤1000)。 【输出】 第一行:树根:ro... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(111) 评论(0) 推荐(0) 编辑
摘要:首先储存区间,不必多言 struct node{ int a,b; } s[55010]; 刚开始的想法是想先把所有的子区间按从小到大的顺序排列。 先排左端点,左端点相同再排右端点 如 [1,4] [2,3] [3,6] bool compare(node ... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(65) 评论(0) 推荐(0) 编辑
摘要:思路:每次找当前序列中的最大值,想办法把他放在序列中的末尾就可以了 找最大值时,有以下三种情况: ① 最大值就在序列尾部.无需处理,找前i-1个数中的最大值 ② 最大值在序列首部. 将序列翻转,最大值就到了尾部,然后执行① ③ 最大值在某个位置. 挨个搜... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(13) 评论(0) 推荐(0) 编辑
摘要:原题链接Online JudgeOnline Judgehttps://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3601 VJ链接... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(27) 评论(0) 推荐(0) 编辑
摘要:2021年8月18日09:02:13 #include//2021年8月17日21:43:13int median3(int n[],int a,int b,int c){ if((n[a]>=n[b] && n[a]=n[c])) return a; if... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(21) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P1164 题解: for(int i=1;i=a[i]) d[i][j]+=d[i-1][j-a[i]]; } } 一些需要注意的地方: 我们规定... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(22) 评论(0) 推荐(0) 编辑
摘要:https://www.lanqiao.cn/problems/605/learning/?contest_id=51 题解 这题看似是一道进制转换题目 实则还有很多坑点 比如对于数字702 我们通常进制转换会将其变为110 然而702对应的... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(27) 评论(0) 推荐(0) 编辑
摘要:845. 八数码 - AcWing题库 179. 八数码 - AcWing题库 题解: 题意就是寻找最终状态所需要的最小交换次数 每一步的状态都可以写成一个字符串的形式 如 的状态表示为"123x46758" 故末状态就是12345678x 寻找最小... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(24) 评论(0) 推荐(0) 编辑
摘要:UVA120 Stacks of Flapjacks 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(5) 评论(0) 推荐(0) 编辑
摘要:1208. 翻硬币 - AcWing题库高质量的算法题库https://www.acwing.com/problem/content/1210/ 题解: 一个长度为n的串 ********** o****o**** 把同时翻转第i枚和第i+1枚硬币看作是... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(27) 评论(0) 推荐(0) 编辑
摘要:营救 - 洛谷https://www.luogu.com.cn/problem/P1396错题 题解: 直接进行Kruskal 将边从小到大排序后 进行合并操作, 不需要考虑前面的这些边是否会经过 因为若当前s到t不连通,则s... 阅读全文
posted @ 2022-09-17 19:35 Rainy_L 阅读(19) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示