首页 > 其他分享 >刷题 后缀和 贪心

刷题 后缀和 贪心

时间:2023-12-02 22:11:17浏览次数:28  
标签:suf 后缀 ll int +...... 刷题 贪心

2023.12.2 cf 1903C

 

解题思路(听说是个常见的形式)

 

  a:第一个部分 b:第二个部分 c:第三个部分

  本题1*a+2*b+3*c......这种形式可以拆成

  a+b+c+......

  加上

  b+c+......

  加上

  c+......

  由以上看出可以构造后缀和

  再证明贪心:

  当a*n+b*(n+1)>(a+b)*n,解得b>0,也就是说,当加上的后缀大于0时做切割能得到较大结果

 

ps:其实一开始想到贪心是后面的数大于0就切割的,但没想到后缀和所以后面的数又会被它后面的数影响,一直没想到解法

 

代码

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
#define ll long long
const int N=100005;
int a[N];
ll suf[N];
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		for(int i=1;i<=n;i++)cin>>a[i];
		suf[n+1]=0;
		for(int i=n;i>0;i--)suf[i]=suf[i+1]+a[i];
		ll ans=suf[1];
		for(int i=2;i<=n;i++)
		{
			if(suf[i]>0)ans+=suf[i];
		}
		cout<<ans<<endl;
	}
	return 0;
}

标签:suf,后缀,ll,int,+......,刷题,贪心
From: https://www.cnblogs.com/modemingzi-csy/p/17872339.html

相关文章

  • 一个算法笨蛋的11月leetCode刷题日记
    时间情况2021年10月29日时隔一年,第三次重做反转链表,又没做出来,太废了。2021年11月1日时隔两天,第四次重做反转链表,轻松写出【21】合并两个有序链表(思路:想象两个有序链表,需要新建两个next指向头节点的空node,一个用于最后返回.next,一个用于接收最小的node)【206】反转链表(思路:......
  • 【牛客刷题】
    scanf读入16进制数写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。 数据范围:保证结果在1≤n≤2^31−1 我的解法:voidHexToDec(void){uint32_tresult=0;scanf("%x",&result);printf("%d",result);}scanf("%x",&n);就可以接收16进制数据。......
  • 刷题建议
    刷题这件事情本身也是需要「方法」的。我们针对算法面试准备的算法题,不是智力题,我们觉得刷题有困难,有很大一部分是心理上的因素。其实这一类算法问题非常像我们初高中的数学问题,知识点很多,都有相对固定的思考方向和常考的知识点,答案和思路也是相对固定的。刷题这件事情我觉得一......
  • 1000多页!LeetCode刷题手册分享
    这本手册确实是一部令人印象深刻的作品。(手册链接在文末!!!)首先,内容充实是这本手册的一大亮点。它涵盖了广泛的算法和数据结构主题,包括数组、链表、树、图、排序算法、动态规划等等。每个主题都有详细的解释、示例代码和复杂度分析,帮助读者深入理解和掌握相关知识。此外,手册还提供......
  • 比赛刷题:crypto
    html解密 点进去然后要输入password,直接在网页上面找呗brainfuck 直接动用工具,就像标题一样,然后解码的时候需要点击BrainfuckToText就可以得出啦,其他的是错的 刷个题吧 嗯,知道大致思路,就是被坑了,连续解三次base64才可以得出结果base32 根据题目嘛,直接采用base32......
  • 前端歌谣的刷题之路-第一百零九题-双向数据绑定
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷本题目源自于牛客网微信公众号前端小歌谣题目......
  • 算法刷题记录-数组之和
    算法刷题记录-数组之和四数相加Ⅱ给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0示例1:输入:nums1=[1,2],nums2=[-2,-1],nums3=[-1,......
  • 2023-11-23-idea技巧-自定义后缀补全
    Idea技巧-PostfixCompletion在idea中可以使用.xxx进行后缀补全比如.sout如何自定义后缀补全?比如.log在idea中打开设置File|Settings|Editor|General|PostfixCompletion这里定义了上面提到的sout同理点击上图+号新建一个模板,并参考sout写入对应的规则效果......
  • 蓝桥杯刷题
    题目:门牌制作-蓝桥云课(lanqiao.cn)sum=0foriinrange(1,2021):s=str(i)sum+=s.count('2');print(sum)题目:卡片-蓝桥云课(lanqiao.cn)importosimportsys#请在此输入您的代码num=0foriinrange(1,100000):num+=str(i).count('1')if(num>......
  • URL绕过-后缀路径模式匹配设置错误绕过过滤器
    @ConfigurationpublicclassUrlMatchConfigextendsWebMvcConfigurationSupport{@OverridepublicvoidconfigurePathMatch(PathMatchConfigurerconfigurer){//setUseSuffixPatternMatch后缀模式匹配,如果设置为true,路径后面不管多少个//都能匹配......