- 博客(25)
- 收藏
- 关注
原创 CF1929 Codeforces Round 926 (Div. 2)
个硬币也不能弥补之前的亏损,这样你就亏本了,庄家就可以靠这种策略坑你的钱.因此你要保证你的下注赢了以后要稳稳当当地盈利.这样就很简单了,算出来 1~x 局,以及最后稳赢1局总共x+1局的最低下注金额的和就可以了.思考一下,假设硬币数量充足,这时候两个两个的投最多进行几局才能保证不亏本?此时我们最少也需要下注两个硬币,这样赢了就能获得。,此处是上取整.这样我们就得到了为了防止亏本,每次下注的最低金额。考虑先一个一个的下硬币,那么为了保证不亏本,最多输。,才能保证不亏本. 化简得。,那么如果赢了,就获得。
2024-02-19 10:22:26
1296
原创 【无标题】
原版本默认选择第一个卡组,若卡组为空则有时不能开始,现在改为若卡组为空则默认选背包中前两张绑定的卡,若第一号卡组为空并且背包前两张卡均不绑定,此时不能开始游戏,提示信息框.若出现欲执行方法的对象为空,请看文章https://www.bilibili.com/read/cv27060090/请新手务必认真看新手教程!请新手务必认真看新手教程!请新手务必认真看新手教程!请新手务必认真看新手教程!游戏升级时,因为获取不到在房间内的状态,显示的是未知状态,现在未知状态超过3次后再刷新即可解决。
2024-01-07 14:09:53
423
原创 CF1736 C1. Good Subarrays (Easy Version)
现在给你一个数组,请你找出这个数组最多有多少个连续子序列构成的数组是。,把他前面任意连续个元素去掉,剩下的元素组成的数组仍然是。最后所有可能的分类的方法数是以。,那么由结论②,不妨就取后。在一个新数组的下标最多是。结尾的最长数组长度就是。蒟蒻居然自己做出来了…结尾的最长数组长度就是。结尾的数组长度之和.
2022-10-12 10:56:33
242
原创 UVA11987 Almost Union-Find
这样可以很方便地拿出单个数字放入别的集合中.原集合中的数进行find操作也不会受影响。题目中与一般并查集不同的是,要把一个数从一个集合中拿出来,放到另一个集合中。简单的p[2]=3是不行的,因为1也会受到牵连。储存减去N后的数字对应的集合。如果要把2拿出来给3。...
2022-07-22 15:54:10
141
原创 UVA1623 神龙喝水 Enter The Dragon 题解
思路:如果遇到一个暴雨天,即a[i]!=0的日子就找在这个日子之前,且在上一次a[i]之后的日子里的晴天.我直接用了map来存一个x号池塘的上一次出现的位置.即只需找从中的晴天(由贪心,应该尽量靠前,才能保证有尽量多的雨天能分配到晴天的日子让龙来吸水)这题修改了许多次第一次想用vector来存晴天的日子,然后从vector中找大于m[x]的第一个日子,结果TLE for(int i=1;i<=day;i++) { ...
2022-05-07 14:37:37
330
原创 UVA11491 奖品的价值
思路是从前往后找前一个数字比后一个数字小的数字每删除一个数字就使下标前移一位,然后接着找.如果找不到,说明已经是递减(非递增)的数列了前面的数字尽量保留大的,最后得到的数字肯定也就是大的了.#include<stdio.h>#include<iostream>#include<cstdlib>#include<string.h>#include<algorithm>using namespace std;int main(){
2022-05-06 22:13:23
95
原创 UVA1610 聚会游戏 Party Games 题解
个人认为一个比较好理解的解法.思路:先对所有字符串进行排序.只需考虑中间那两个串.先预先判断一下两个串的相同部分,让下标k预先到两个串不同的部分.设第n/2个串为a串,它下一个串为b串当遇到不同的字符直接跳出循环,如果k到了a串的最后一个字符都还没发现不同的,那么a串本身就满足条件(此处没考虑k是否超出b串的长度,不过最后提交上去也ac了,代码如下 int i=n/2; string ans; ...
2022-05-06 15:21:31
643
原创 UVA1151 买还是建 Buy or Build
买还是建 Buy or Build - 洛谷第一道A掉的紫题。。(虽然比较水)修修改改写了将近五六个小时,还是在紫书的帮助下写的。不过正解想出来后也就很快A了,(除了忘了重置sum的值WA了一发)题解:这题其实相当于一个暴力,枚举每个套餐是否会被选到,q很小,最大为8。2^8也仅有256种情况枚举完套餐,把这些套餐中包含的点加一个权值为0的边然后求最小生成树就行。粗略分析一下时间复杂度:先建立每个点之间的边,则有n*(n+1)/2条.
2022-04-01 10:11:35
1513
原创 P2946 [USACO09MAR]Cow Frisbee Team S
一道需要进行许多处理的01背包问题,即使优化成1维滚动数组仍然不能拿到满分.#include<stdio.h>#include<iostream>#include<cstdlib>#include<string.h>#include<algorithm>using namespace std;int n,f;const int N=2010;const int MOD=1e8;const int R=3e...
2022-03-27 22:27:12
914
原创 P1164 小A点菜 动态规划
https://www.luogu.com.cn/problem/P1164题解: for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { d[i][j]=d[i-1][j]; if(j>=a[i]) d[i][j]+=d[i-1][j-a[i]]; } }一些需要注意的地方:我们规定(初始化)f[i][0] =1,也就是从前i份菜中恰好花0元的选法为1.
2022-03-25 15:35:34
1040
原创 年号字串-2019届蓝桥杯B组(脑筋急转弯)
https://www.lanqiao.cn/problems/605/learning/?contest_id=51题解这题看似是一道进制转换题目实则还有很多坑点比如对于数字702我们通常进制转换会将其变为110然而702对应的实际字母是ZZ问题出在哪了?实际上这道题转换后不能存在0我们得到转换后的110这种串需要先预处理一下把所有的0向前借位,然后就是ZZ了 for(int i=0;i<s-1;i++) {
2022-03-05 11:36:56
178
1
原创 Acwing845.八数码(Acwing179类似)
845. 八数码 - AcWing题库179. 八数码 - AcWing题库题解:题意就是寻找最终状态所需要的最小交换次数每一步的状态都可以写成一个字符串的形式如的状态表示为"123x46758"故末状态就是12345678x采用BFS#include<stdio.h>#include<iostream>#include<cstdlib>#include<string.h>#include<.
2022-02-24 09:14:47
531
原创 Acwing1208. 翻硬币 (思考题)
1208. 翻硬币 - AcWing题库高质量的算法题库https://www.acwing.com/problem/content/1210/题解:一个长度为n的串**********o****o****把同时翻转第i枚和第i+1枚硬币看作是一个操作的话,一共有n-1种操作可以看出,第一枚硬币只有一种操作可以改变它的状态且每种操作只能进行一次,若进行两次相当于没有操作题解代码#include<stdio.h>#include<io
2022-02-21 09:06:28
361
原创 11.11新生赛(2021)G题AT2580 Widespread整理[★★★★★]
[ARC075B] Widespread - 洛谷https://www.luogu.com.cn/problem/AT2580?contestId=56578前排提醒本题的数据范围比较大,全用long long最好否则会有一部分点会WA我们每一次攻击,都有一个怪兽受到A点伤害,其余怪兽受到B点波及伤害设怪兽总数为n 一共进行了x次攻击t[i]为第i只怪兽受到的中心爆炸攻击的次数则这只怪兽所受伤害总量为 A*t[i]+(x-t[i])*B = B*x +(A-B)*t[i]且
2022-01-26 22:54:33
328
原创 1236:区间合并 易错题
首先储存区间,不必多言struct node{ int a,b; } s[55010];刚开始的想法是想先把所有的子区间按从小到大的顺序排列。先排左端点,左端点相同再排右端点如1 42 33 6也就是bool compare(node a,node b){ if(a.a==b.a) return a.b<b.b; else return a.a<b.a; }然后遍历排好序的所有结点 for(int i=1;i<n;i++)
2022-01-26 09:56:31
803
原创 UVA120 Stacks of Flapjacks 题解
题意翻译给你一迭薄煎饼,请你写一个程式来指出要如何安排才能使这些薄煎饼由上到下依薄煎饼的半径由小到大排好。所有的薄煎饼半径均不相同。要把薄煎饼排好序需要对这些薄煎饼做翻面(flip)的动作。方法是以一抹刀插入一迭薄煎饼中,然后做翻面的动作(也就是说在抹刀上面的薄煎饼经翻面后,会依相反的次序排列)。若一迭共有n个薄煎饼,我们定义最底下的薄煎饼的位置为1,最上面的薄煎饼位置为n。当抹刀插入位置为k时,代表从位置k到位置n的薄煎饼要做翻面的动作。一开始时,这迭薄煎饼随意堆放,并以半径大小来表示。例如:
2022-01-24 08:37:50
350
原创 并查集习题X-Plosives(uvaOJ1160)
原题链接Online JudgeOnline Judgehttps://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3601VJ链接X-Plosives - UVA 1160 - Virtual Judgehttps://vjudge.net/problem/UVA-1160题目描述:给你几组数a和b,表示a和b会形成化合物,如果有有超过3个物品互相..
2022-01-09 11:25:49
312
原创 快速排序C/C++代码实现
2021年8月18日09:02:13#include<stdio.h>//2021年8月17日21:43:13int median3(int n[],int a,int b,int c){ if((n[a]>=n[b] && n[a]<=n[c] )|| (n[a]<=n[b] && n[a]>=n[c])) return a; if((n[b]>=n[a] && n[b]<=n[c] )||
2021-08-18 09:25:47
87
原创 1336:【例3-1】找树根和孩子
【题目描述】给定一棵树,输出树的根rootroot,孩子最多的结点maxmax以及他的孩子。【输入】第一行:nn(结点个数≤100≤100),mm(边数≤200≤200)。以下mm行:每行两个结点xx和yy,表示yy是xx的孩子(x,y≤1000x,y≤1000)。【输出】第一行:树根:rootroot;第二行:孩子最多的结点maxmax;第三行:maxmax的孩子(按编号由小到输出)。【输入样例】8 74 14 21 31 52 62 7
2021-06-17 16:23:44
156
原创 1331:【例1-2】后缀表达式的值
【题目描述】从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。比如,16–9*(4+3)转换成后缀表达式为:16□9□4□3□+*–,在字符数组A中的形式为:栈中的变化情况:运行结果:-47提示:输入字符串长度小于250,参与运算的整数及结果之绝对值均在264264范围内,如有除法保证能整除。【输入】一个后缀表达式。【输出】一个后缀表达式
2021-06-16 10:07:27
250
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人