首页 > 其他分享 >CF1917 C Watering an Array

CF1917 C Watering an Array

时间:2023-12-25 23:11:57浏览次数:28  
标签:int Watering long CF1917 操作 Array include

Link

首先我们研究全是0的情况,显然的,每次操作2最多可以得到1分。

那么显然的,不如直接一次操作一一次操作二,这样是最优的。

然后再研究初始数组,很难用很快的方式得到应该从什么时候开始第一次操作二。

不过可以注意到,第一次操作2最多可以得到n分,那么我们再\(2n+1\)天以后进行第一次操作二,那还不如再第一天就进行操作二。

所以最多需要计算\(2n\)天的答案。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<vector>
#include<ctime>
#include<bitset>
#define int long long
using namespace std;
int t;
int v[100005];
int n,k,d;
int a[100005];
signed main(){
	scanf("%lld",&t);
	while(t--){
		long long ans=0;
		scanf("%lld%lld%lld",&n,&k,&d);
		for(int i=1;i<=n;++i)
			scanf("%lld",&a[i]);
		for(int i=0;i<k;++i)
			scanf("%lld",&v[i]);
		for(int i=1;i<=2*n+1&&i<=d;++i){
			int cnt=0;
			for(int j=1;j<=n;++j)
				cnt+=(a[j]==j);
			ans=max(ans,(long long)cnt+(d-i)/2);
			for(int j=1;j<=v[(i-1)%k];++j)
				a[j]++;
			}
		printf("%lld\n",ans);
	}
	return 0;
}

标签:int,Watering,long,CF1917,操作,Array,include
From: https://www.cnblogs.com/For-Miku/p/17927170.html

相关文章

  • collection List ArrayList HashSet
    1)collection实现子类可以存放多个元素,每个元素可以是Obiect2)有些Collection的实现类,可以存放重复的元素,有些不可以3)有些Collection的实现类,有些是有序的(List),有些不是有序(Set)4)Collection接口没有直接的实现子类,是通过它的子接口Set和List来实现的List接口基本介绍List接......
  • 谈谈JS二进制:File、Blob、FileReader、ArrayBuffer、Base64
    JavaScript提供了一些API来处理文件或原始文件数据,例如:File、Blob、FileReader、ArrayBuffer、base64等。下面就来看看它们都是如何使用的,它们之间又有何区别和联系!1.BlobBlob全称为binarylargeobject,即二进制大对象,它是JavaScript中的一个对象,表示原始的类似文件......
  • cpp-Array-element-count
    title:C++数组元素个数计算author:TokisakiGalaxytop:falsecover:falsetoc:truemathjax:falsedate:2019-12-03img:coverImg:excerpt:C++数组元素个数计算tags:-C++categories:-编程password:inti_max(inta[]){ inttmp=a[0]; for(inti=......
  • Arrays.asList的坑
    2023年12月21日下午16.46分,咪宝马上下班去上海过圣诞节去了,一个人孤单 CTO:谁在项目中使用Arrays.asList、ArrayList.subList,就立马滚蛋! 1.asList用来把数组转成ArrayList,方便。但问题是这个方法生成的ArrayList是Arrays的内部类,这个内部类没有实现抽象类AbstractList的......
  • CF1914 D Array Collapse 题解
    LinkCF1914DArrayCollapseQuestion初始给出一个数组\(\{P\}\),数组中每个值都不相同,我们可以选中\(P\)数组中连续的一段,然后删除除了最小值以外的所有元素,求删除多次(包括\(0\)次)后,剩下的数组的数量Solution当时就没怎么往DP方面想,没想到还能这样DP定义\(F[i]\)......
  • java,ArrayList类
    ArrayList是一个数组列表,可以将多个对象放入数组中,是一个长度可变的集合,提供了增删改查的功能。publicclassTest2{publicstaticvoidmain(String[]args){Catc1=newCat("小黑","黑色",2.2);Catc2=newCat("小白","白色",2.3);Catc......
  • 深度解析ArrayList:灵活高效的动态数组实现
    在Java集合框架中,ArrayList是一个常用而强大的类,它提供了动态数组的实现,允许在运行时动态调整数组的大小。ArrayList是List接口的实现类,基于动态数组的数据结构。它可以存储任意类型的对象,并提供了丰富的方法,包括添加、删除、遍历等,使其在各种场景下都能发挥重要作用。底层......
  • CF Edu160D Array Collapse
    可以操作任意多次。考虑dp。设\(dp_i\)表示考虑前\(i\)个位置之后,强制最终留下第\(i\)个位置上的数的方案数,转移时枚举前面的位置\(j\),对于合法的决策\(j\),显然需满足\(\forallk\in(j,i)\),\(a_k>a_i\)或\(a_k>a_j\)。显然可以提前预处理出每个位置\(i\)向前第一......
  • CF1870B-Friendly-Arrays-题解
    title:CF1870BFriendlyArrays题解date:2023-09-2010:32:12categories:-题解翻译给出长度为\(n\)的序列\(a\)和长度为\(m\)的序列\(b\),选出\(b\)中的任意个数(可以不选),让\(a\)的每个数都或上它们,求\(a_1\oplusa_2\oplus\dots\oplusa_n\)的最大值......
  • CF1861C-Queries-for-the-Array-题解
    title:CF1861CQueriesfortheArray题解date:2023-09-0607:53:53categories:-题解因为插入和删除操作都在队尾,所以对序列前缀分析一下:若一个序列的答案为YES,那么它前缀的答案也为YES。(对于没检查过的序列)若一个序列的答案为NO,那么它前缀的答案不确定。(对于没......