![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
码海里的守望者
桃李不言,下自成蹊
展开
-
E. Permutation by Sum
E. Permutation by Sum 题目链接 题目大意 给你一个数n,和一个l~r的区间,和一个目标值,问你能让1到的n的排列,使得l至的r之间的和为目标值,如果找不到输出-1 思路 首先一个这个区间有个最大值n,n-1…n-r+l和一个最小值1,2,3,…r-l+1,目标值在这个区间内是合法的,否则就输出-1,如果合法那么,先找目标值和区间最小和的差值,然后将这个差值除以这个区间元素的个数,然后将这个这个值,加到最小值中的每一位元素上,如有有余数,需要重新加上,然后在区间前的元素先输出,然后输出区原创 2021-04-13 15:43:03 · 338 阅读 · 0 评论 -
D. Min Cost String
D. Min Cost String 题目链接 题目大意 定义一个字符串,如果满足s[i]=s[j]并且s[i+1]=s[j+1],那么就有一个价值,要求给你一个k表示只能使用前k个字母,构造出长度为n的字符串,使其价值最小。 思路 由于你只能用前k个字母,把么第一层放由a到a+k的字母,第二层交叉着放第上一维的字母和当前遍历到的前k个字母,这样可以拿到最小的价值。 #include <bits/stdc++.h> #pragma GCC optimize("Ofast") #pragma GC原创 2021-04-13 11:41:39 · 441 阅读 · 0 评论 -
C. Petya and Exam
C. Petya and Exam 题目链接 题意 你去参加考试,考试有两类题型,简单题和难题,简单题需要a时间解决出来,难题需要b时间解决出来,每道题到一定时时间会变成必做题,在这之前时非必做题,如果必做题没有写那么你将得到零分,问最多能得到多少分。 思路 能做简单题,先做简单题,但还要考虑时间限制,所以先将时间做一个从大到小的排序,最优的解法是什么呢,在这道题即将变到必做题的前一秒钟交卷,这样就能得到最多的分数,那么我在做每道题之前,先试探一下,将限制时间提前一秒钟去做当前问题,在还有剩余时间的同时去解原创 2021-04-02 21:32:36 · 75 阅读 · 0 评论