首页 > 其他分享 >CF div2 round 960

CF div2 round 960

时间:2024-09-11 18:25:22浏览次数:1  
标签:960 ++ CF round ls ans x2 x1 mx

C. Mad MAD Sum

手玩规律题,预处理两次就能得到一个规律的答案。

#include<bits/stdc++.h>
using namespace std;
#define ls(x) (x<<1)
#define rs(x) ((x<<1)+1)
int read() {
	int ret = 0; char c = getchar();
	while (c < '0' || c>'9') c = getchar();
	while (c >= '0' && c <= '9') ret = ret * 10 + c - '0', c = getchar();
	return ret;
}
int last[maxn], a[maxn];
signed main() {
	int t = read();
	while (t--) {
		int n = read();
		vector<int>b;
		int mx = 0;
		for (int i = 1; i <= n; i++)last[i] = 0;
		long long ans = 0;
		long long res = ans;
		for (int i = 1; i <= n; i++) {
			a[i] = read();
			if (last[a[i]] && a[i] > mx)mx = a[i];
			last[a[i]] = i;
			b.push_back(mx);
			ans += mx; res += a[i];
		}
		res += ans; ans = 0; int ls = 0; mx = 0;
		for (int i = 1; i < n; i++) {
			if (b[i] == ls)mx = ls;
			ls = b[i]; ans += mx;
			b[i] = mx;
		}
		res += ans;
		for (int i = b.size()-1; i >0; i--) {
			//cout << i << ' ';
			if (ans == 0)break;
			ans -= b[i];
			res += ans;
		}
		cout << res << endl;
		
	}
}

D. Grid Puzzle

贪心放置方块即可通过。。能放两格方块就放两格。考虑复杂了属于是。

#include<bits/stdc++.h>
using namespace std;
#define ls(x) (x<<1)
#define rs(x) ((x<<1)+1)
int read() {
	int ret = 0; char c = getchar();
	while (c < '0' || c>'9') c = getchar();
	while (c >= '0' && c <= '9') ret = ret * 10 + c - '0', c = getchar();
	return ret;
}
int a[maxn];
signed main() {
	int t = read();
	while (t--) {
		int n = read();
		int ans =0;
		bool x1 = 0,x2=0;
		for (int i = 1; i <= n; i++)
		{
			a[i] = read();
		}
		int cnt = 0;
		for (int i = 1; i <= n;i++ ) {
			if (!a[i]) {
				x1 = 0, x2 = 0; continue;
			}
			if (a[i] > 4)ans++, x1 = 0, x2 = 0;
			else if (a[i] > 2) {
				if (x2) {
					x2 = 0, x1 = 1; ans++;
				}
				else if (x1) {
					x2 = 1; x1 = 0; ans++;
				}
				else x1 = 0, x2 = 0, ans++;
			}
			else {
				if (x1)
					x1 = 0;
				else ans++,x1=1;
				x2 = 0;
			}
		}
		cout << ans << endl;
	}
}
E题看题解像点分治但是由于大码量所以没有补

标签:960,++,CF,round,ls,ans,x2,x1,mx
From: https://www.cnblogs.com/lyrrr/p/18408708

相关文章

  • CF786B 题解
    题意洛谷题面传送门现有一个图,有\(n\)个节点,从节点\(s\)出发,求到\(n\)个点每一个点的最短路。其中,有三种建边方式:建一条从\(u\)到\(v\)的单向边。从节点\(v\)分别向\([l,r]\)的每个结点连一条边。从节点\([l,r]\)向节点\(v\)连边芝士线段树优......
  • WCF Bindings Needed For HTTPS
    原文地址:https://weblogs.asp.net/srkirkland/wcf-bindings-needed-for-https我刚刚完成了我的第一个WCF应用,它在我的开发机上顺利工作,直到我将它部署到产品环境下。所有的WCF服务突然都不工作了。我得到的是一个javaScript错误TestServiceisnotdefined。当我深入查看......
  • 2024.9.10 LGJ Round
    C有\(n\)个点,一开始\(s\)点是白色,其余黑色,你可以花费\(p_i\)的代价使\(i\)点的颜色变成\(a_i\)点的颜色。若第\(i\)个点为白色,那么会有\(w_i\)的代价,问贡献减去代价最大是多少。\(n\le5000\)。不难发现这是一个外向基环树的形式。如果\(s\)不在环上,就是一个树......
  • 挑战不可能篇1——洛谷28分钟14道CCF GESP C++ 一级上机题&洛谷14道题题解
    扯谈今天继续挑战不可能:洛谷28分钟14道题这我个人认为不简单,算上编译、提交、命名等杂七杂八的东东之后,只剩下了大约1分钟/题。本次挑战的是CCFGESPC++一级上机题.这竟然能成功!下面附上每一题第一题第二题第三题第四题第五题第六题第七题第八题第九题第十题......
  • CF1672F2 Checker for Array Shuffling 题解
    题目链接点击打开链接题目解法我怎么F1都不会做/llF1:由原始值向最终值连边如果是排列的话,操作次数显然为\(n-\)环数拓展到非排列的情况,即相同数之间的下标可以选择顺序,要求分出来的环数最大直接考虑上面的这东西,让我进入了死胡同。。先给出一个结论:最大环数的最小值是......
  • CF717A Festival Organization 题解
    Description一个合法的串定义为:长度在\([l,r]\)之间,且只含0,1,并且不存在连续\(2\)个或更多的\(0\)。现在要选出\(k\)个长度相同的合法的串,问有几种选法,答案模\(10^9+7\)。\(1\leqk\leq200,1\leql\leqr\leq10^{18}\)。Solution容易发现答案为\(\sum_{i=l+2}^{r......
  • CF319E Ping-Pong
    题意如果两个线段相交(不包括端点),那么你可以从一个线段移动到另外一个线段。动态添加线段,询问能否从一个线段前往另外一个线段。思路我们不难想到利用\(scc\)来解决点对之间的关系(经典例题《炸弹》),离散化后使用权值线段树保存点对关系。具体来说,用有向边表示两个线段能相互影......
  • CF 1579 G
    题目描述在一根数轴上,你将依次放入\(N\)根长度为\(d_i\)的线段。每次,你可以将线段放置于数轴上并使得其中一段等于上一段的末尾。假设上一次的末尾为\(x\),则这次你可以将线段置于\([x-d,x]\)或\([x,x+d]\),并将\(x\)设为\(x-d\)或\(x+d\)。求最终摆出的的·线段长......
  • Codeforces Round 942 (Div. 1) VP 记录
    CodeforcesRound942(Div.1)VP记录我没实力打Div1/kk事实上我唯一rated的那场Div1切三题是不是运气好啊/kk/kkA考虑\(k=0\)的时候怎么做。设最小值为\(x\),答案显然是\(\sum[a_i=x\veea_i=x+1]a_i\)。都与最小值相关了,都最小值最大了,直接二分答......
  • 题解:CF913C Party Lemonade
    分析因为容量为\(2^{i-1}\),所以对于任意的\(i<j\),第\(j\)种瓶子一定可以通过选择\(2^{j-i}\)个\(i\)种瓶子来实现。定义一个瓶子的性价比为\(\dfrac{\textrm{容量}}{\textrm{价格}}\),即\(\dfrac{2^{i-1}}{c_i}\)。我们可以按照每个瓶子的性价比从高到低排序,依次选择......