刷题
r11111se
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #723 (Div. 2) C. Potions(两道一个代码)
题目链接题目大意:给你n个瓶饮料,每个饮料有一个值,喝下去生命值会增加该值,让你从左到右依次,对待每个饮料有两种选择,喝or不喝,与此同时,要保证生命值在是、任何时期为非负数。刚开始觉得这道题要用dp,(奈何本菜鸡不会dp),又看到了其他大佬优先队列的思路,然后自己写了一下,A了。这里补充一下优先队列的知识:大佬的csdn和队列基本操作相同:top 访问队头元素empty 队列是否为空size 返回队列内元素个数push 插入元素到队尾 (并排序)emplace 原地构造一个元素并插原创 2021-05-31 11:09:52 · 117 阅读 · 0 评论 -
Sifid and Strange Subsequences
Codeforces Round #722 (Div. 2) B. Sifid and Strange Subsequences题目链接题目大意:给定你n个数,让你求一个最长子序列满足其中任意两个数的绝对差,均大于该子序列的最大值;思路:贪心,该子序列最多只能有一个正数,并且判断0的个数;第一种情况:0的个数小于等于1,此时允许正数存在,所以查找距离非正数最近的哪一个数,并且判断之后是否存在两个数的的绝对差小于该整数,如果存在则删除该正数。第二种情况:0的个数大于1,此时不能存在正数,所以只需求小原创 2021-05-26 22:54:16 · 310 阅读 · 0 评论 -
AcWing 3489. 星期几(基姆拉尔森公式)
公式描述:week= (d+2mon+3(mon+1)/5+y+y/4-y/100+y/400+1)%7,其中d表示某一天,mon表示某一个月,y表示某一年,其中若月份位一月或二月的时候,可看作上一年的十三十四月(玄学的力量)。题目链接#include<iostream>#include<string.h>#include<algorithm>#include<stdio.h>#include<cmath>#include<qu原创 2021-05-18 11:06:11 · 68 阅读 · 0 评论 -
Educational Codeforces Round 109 (Rated for Div. 2) B. Permutation Sort(挺有意思)
题目链接题目大意:给你n个数,你每次可以选任意一个连续的子段(不能是整个数列)将其中的数字按任意顺序排序,求将这n个数排序成为单调递增序列的最小次数。思路:用贪心就行,每次更改最长的连续子段;#include<iostream>#include<string.h>#include<algorithm>#include<stdio.h>#include<cmath>#pragma comment(linker, "/STACK:102原创 2021-05-17 15:13:44 · 76 阅读 · 0 评论 -
2021-05-08
Codeforces Round #720 (Div. 2) D. Same Differences传送门题目大意:给你n个数,让你找出其中符合i<j且aj-ai=j-i的对数。思路:本来想的是暴力每个点然后遍历求符合条件的最后将结果加起来,但是这样就一定会TLE,然后看了别人的题解(大佬就是大佬),再稍加思索变得出了一个比较巧妙的方法:aj-ai=j-i,经过变形可得 aj-j=ai-i,这个时候我们只需要求出 ai-i出现的次数然后-1就可以了(因为题目要求的是对数);#include&l原创 2021-05-08 11:32:36 · 219 阅读 · 0 评论 -
2021-04-14
HDU 5742(gcd实现分数的化简)点此处跳转题目思路大概是贪心,因为题目要求(a1+a2)/(a1+a2+..+an)的最大值,那么首先分子要尽可能的大,分母尽可能的小,也就是(a3+...+an)尽可能小。又因为题目描述的该数组为非单调递增序列,所以我们尽可能的认为a[t]当t特别大时为0;然后每当输入一个a[i]的时候让i到2之间的数小于a[i]的数全都等于a[i],这样可以尽可能的小。如果a[1]和a[2]未被赋值的时候,可以另他们都等于100,这样可以确保分子尽可能的大。另外一原创 2021-04-14 22:16:16 · 98 阅读 · 0 评论