首页 > 其他分享 >Educational Codeforces Round 126 (Rated for Div. 2)

Educational Codeforces Round 126 (Rated for Div. 2)

时间:2023-11-09 20:44:07浏览次数:47  
标签:Educational Rated max Codeforces ans include mx define

https://codeforces.com/contest/1661/
B题数据很小,直接bfs预处理就行
C题随便猜了一下,设mx=\(max\{a_i\}\)最后的值应该是
mx,mx+1,mx+2,mx+3之类的吧
D题刚开始从前面考虑,陷入僵局,一度非常的困,学习凯库勒睡了一会,就突然想到了,前面不行,就从后面考虑,可以发现,从后面考虑的话,就非常简单,直接无脑贪就行。

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
#include<vector>
#include<set>
#include<queue>
#define A puts("YES")
#define B puts("NO")
#define fo(i,a,b) for (ll (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (ll (i)=(b);(i)>=(a);(i)--)
#define mk(x,y) make_pair((x),(y))
#define lc (o<<1)
#define rc (o<<1|1)
using namespace std;
//typedef __int128 i128;
typedef double db;
typedef long long ll;
const ll mo=1e9+7;
const int inf=1<<30;
const int N=3e5+5;
ll a[N],n,k,b[N],s,t,z,ans;
int main()
{
//	freopen("data.in","r",stdin);
//	freopen("ans.out","w",stdout);

	scanf("%lld %lld",&n,&k);
	fo(i,1,n) scanf("%lld",&a[i]);
	
	fd(i,n,k+1) {
		
		z=0;
		t-=b[i];
		s-=t;
		a[i]-=s;
		if (a[i]>0) {
			if (a[i]%k) z=a[i]/k+1;
			else z=a[i]/k;
		}
		
		ans+=z;
		s+=z*k;
		t+=z;
		b[i-k-1]+=z;
	}
	fd(i,k,1) {
		z=0;
		t-=b[i];
		s-=t;
		a[i]-=s;
	}	
	
	ll mx=0;
	fo(i,1,k) {
		if (a[i]>0) {
			if (a[i]%i==0) mx=max(mx, a[i]/i);
			else mx=max(mx, a[i]/i+1);
		}
	}
	
	ans+=mx;
	printf("%lld",ans);

	return 0;
} 

 
 

标签:Educational,Rated,max,Codeforces,ans,include,mx,define
From: https://www.cnblogs.com/ganking/p/17822775.html

相关文章

  • Codeforces Round 908 (Div. 2)
    A.SecretSport题意:A与B选手在下棋,规定下赢X把看作赢一局,一共赢Y把的那个是最后的赢家。思路:因为不知道x,y到底是多少,n的范围是到20,所以只需要枚举x即可,时间复杂度不高,注意的是,如果枚举结果是A赢,那么给定字符串的最后一个值一定是A,反之也是。#include<bits/stdc++.h>usingnam......
  • Codeforces Visit
    CodeforcesVisit记录一下自己大概vis了那几场??随机补题大法好!CF632Div.2飞速模拟出ABC。优势在我!CF1333D发现就是把字符串变成LLRR此类形状。所以开头必然是L啊,然后我们考虑先把L换到第一个。发现必然是LLLLLLLLLLLRRRRRRRR啊,很快啊,不会了。CF1333E你妈妈con......
  • Educational Codeforces Round 157 (Rated for Div. 2)
    A.TreasureChest题目大意:人在0处,宝藏在x,钥匙在y,人最多拿宝箱z秒,问你最快多久开宝箱?思路:如果说钥匙在宝箱的左边,那么人只需要往右走就是最佳答案,如果钥匙在宝箱的右边,那么人只需要拿的宝箱到最佳地点就行#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ intx,y......
  • Educational Codeforces Round 157 (Rated for Div. 2)
    F.FancyArrays第一眼感觉是去容斥掉条件1,因为条件2其实挺紧的。不妨用\(f(l,r)\)表示\(a\)值域在\([l,r]\)的方案(满足条件2)。那么答案为\(f(0,+\infty)-f(0,x-1)-f(x+k,+\infty)\),因为如果选了\([0,x-1]\)的数,那么还要更大的话,一定会选到\([x,x+k-1]\),所以你要......
  • Codeforces Round 907 (Div. 2)
    ASortingwithTwos题目大意:选择一个m,然后将1~2^m下表的数减一,可以操作无限次,问你能不能使数组单调递增题目数据851234556534496557566874432162245328131719275717913531757179921012340678910YESYESYE......
  • 关于topology generated by functions的一些思考
      平时所学的拓扑都是直接给出开集族或者是basisorsubbasis,然后由basisorsubbasis生成拓扑。  前些天看Kechris时,遇到了weaktopology。泛函分析时学过weakconvergence,但没有接触过weaktopology。  它给出的定义是generatedbyfunctions………看到的时候就很纳闷到......
  • Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated, T-shirts + prizes!) B. Kuroni an
    Problem-1305B-Codeforces 啦啦啦,这题题目有点长,概括一下就是,希望将所有()匹配的括号去掉问你需要操作多少次 双指针,一个i一个j,从前往后记录匹配的括号如果发现:1.括号匹配2.i<jok,就放入ans (⊙o⊙)…,最后记得sort一遍ans,第一遍因为这个wa了一发 #include......
  • Codeforces Round 905 (Div. 2) C. You Are So Beautiful
    题面翻译给定数列\(a\),定义一个子序列\(S\)是合法的当且仅当从\(a\)中有且仅有一种选法能选出子序列\(S\)(选法相同定义为最终选出的位置集合相同)。求其有多少非空合法子序列,满足它占据了\(a\)中一端连续的区间。\(n\leq10^5\)。思路判断区间合法性对于一段区间\([l......
  • Educational Codeforces Round 157 (Rated for Div. 2)
    A.TreasureChest分类讨论一下,只有两种情况。走到钥匙处,然后走到箱子处走到箱子处,移动箱子,走到钥匙处,走回箱子处对于第二种情况可以直接枚举箱子被移动到的位置#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongusingvi=vector<int>;usingpi......
  • Educational Codeforces Round 157 (Rated for Div. 2) D. XOR Construction
    题目链接题意给你\(n-1\)个整数\(a_1,a_2,\dots,a_{n-1}\)。你的任务是构造一个数组\(b_1,b_2,\dots,b_n\),使得:从\(0\)到\(n-1\)的每个整数都在\(b\)中出现一次;对于从\(1\)到\(n-1\)的每个\(i\),\(b_i\oplusb_{i+1}=a_i\)(其中\(\oplus\)表示......