首页 > 其他分享 >Codeforces Round 969 (Div. 2)

Codeforces Round 969 (Div. 2)

时间:2024-09-16 20:24:11浏览次数:11  
标签:const cin int void 969 Codeforces ++ solve Div

传送门

A.

题意:集合里有 \([l, r]\),每次操作选择集合中三个互质的不同的整数并从集合中删除,最多可以进行多少次操作

\(gcd(i, i + 1) = 1\),每次选择相邻的三个数,且第一个数为奇数,这样保证这三个数一定互质,判断 \(l\) 和 \(r\),统计个数即可。

#include<bits/stdc++.h>
using namespace std;

const int N = 1e6 + 7;
void solve() {
    int l, r;
    cin >> l >> r;
    int p = (r - l + 1);
    if(r % 2 == 1) p ++;
    cout << p / 4 << endl;
}
int main() {
    int T;
    cin >> T;
    while(T --) solve();
}

B.

不难发现操作若干次后最大值的位置不变,比较好证明,模拟即可。

#include<bits/stdc++.h>
#define int long long
using namespace std;

const int N = 1e6 + 7;
int a[N];
void solve() {
    int n, m;
    cin >> n >> m;
    for(int i = 1; i <= n; i ++) cin >> a[i];
    int mx = 0;
    for(int i = 1; i <= n; i ++) mx = max(mx, a[i]);
    for(int i = 1; i <= m; i ++) {
        string s;
        int l, r;
        cin >> s >> l >> r;
        if(s == "+") {
            if(mx >= l && mx <= r) mx ++;

        }
        else {
            if(mx >= l && mx <= r) mx --;
        }
        cout << mx << " ";
    }
    cout << endl;
}
signed main() {
    int T;
    cin >> T;
    while(T --) solve();
}

C.

\(+ A, + B\) 等价于 \(\pm k \gcd(A, B)\),在模 \(\gcd(A, B)\) 找差的最小的即可。

#include<bits/stdc++.h>
#define int long long
using namespace std;

const int N = 1e6 + 7;
int c[N];
void solve() {
    int n, a, b;
    cin >> n >> a >> b;
    for(int i = 1; i <= n; i ++) cin >> c[i];
    int d = __gcd(a, b);
    for(int i = 1; i <= n; i ++) c[i] %= d;
    sort(c + 1, c + n + 1);
    int ans = c[n] - c[1];
    for(int i = 1; i < n; i ++) {
        ans = min(ans, c[i] - c[i + 1] + d); 
    }
    cout << ans << endl;
}
signed main() {
    int T;
    cin >> T;
    while(T --) solve();
}

D.

一条链的权值只与链的两个端点有关,若根不为 ?,答案即为 \(sumx / 2\),其中 \(sumx\) 为叶子中 ? 的个数。

否则要判断两种情况哪一个获得权值最大,稍微有点细节。

#include<bits/stdc++.h>
using namespace std;

const int N = 1e6 + 7;
vector<int> g[N];
int p[N], cnts, cnt0, cnt1;
int owo;
string s;
void dfs(int u, int fa) {
	int cnt = 0;
	for(int v : g[u]) {
		if(v == fa) continue;
		dfs(v, u);
		cnt ++;
	}
	if(!cnt) {
		if(s[u] == '?') cnts ++;
		else if(s[u] == '0') cnt0 ++;
		else cnt1 ++;
	}
	else if(u != 1 && s[u] == '?') {
		owo ++;
	}
}
void solve() {
	cnt1 = cnt0 = cnts = owo = 0;
	int n;
	cin >> n;
	for(int i = 0; i <= n; i ++) g[i].clear();
	for(int i = 1; i < n; i ++) {
		int u, v;
		cin >> u >> v;
		g[u].push_back(v), g[v].push_back(u);
		
	}
	cin >> s;
	s = ' ' + s;
	dfs(1, 0);
	if(s[1] != '?') {
		if(s[1] == '1') {
			cout << cnt0 + (cnts + 1) / 2 << endl;
		}
		else cout << cnt1 + (cnts + 1) / 2 << endl;
	} 
	else {
		if(cnt1 ^ cnt0) {
			cout << max(cnt1, cnt0) + cnts / 2 << endl;
		}
		else {
			cout << (cnt0 + cnt1 + cnts + (owo & 1)) / 2 << endl;
		}
	}
	
}
int main() {
	int T;
	cin >> T;
	while(T --) solve();
}

E.

标签:const,cin,int,void,969,Codeforces,++,solve,Div
From: https://www.cnblogs.com/wyyqwq/p/18416567

相关文章

  • Codeforces Round 972 (Div. 2)
    A.SimplePalindrome给定整数\(n\),构造长度为\(n\)的只由aeiou的字符串,使得它的回文子序列最少。容易发现aia不如aai优,贪心的将每种字符放在一起,并将总个数尽量均分到每个字符上。点击查看代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglo......
  • Codeforces Round 970 (Div. 3) 复盘
    CodeforcesRound970(Div.3)Sep/01/202422:35UTC+8length02:15好闲啊,还要写div3的复盘,就当听歌的同时练习翻译兼打字了。总而言之还是太菜了#Who=Penalty*ABCDEFGH1624BaSEc1d6250+00:04+00:19+00:24+00:34+01:17+01:32因为开学前......
  • Codeforces Round 968 (Div. 2)
    传送门A.判断首位字符是否相等即可#include<bits/stdc++.h>usingnamespacestd;constintN=1e6+7;voidsolve(){intn;strings;cin>>n>>s;if(s[0]==s[n-1])cout<<"No"<<endl;elsecout<&l......
  • Codeforces 972 div2
    A-SimplePalindrome1、先对字母进行分配,每个字母分到n/5个2、对剩余字母进行分配,前n%5个字母每一个分配一个3、分别将其输出,相同字母放在一起,如果相同字母分开,就会出现如“ABA”这样的回文子串。AC代码:#include<bits/stdc++.h>usingnamespacestd;charss[7]={......
  • Codeforces Round 972 (Div. 2) 2005C. Lazy Narek 题解
    原题链接:https://codeforces.com/contest/2005/problem/C看了教程发现都是用dp做的,在这里分享一个差不多的SPFA的思路(赛场上忘了Dijkstra不能有负边所以炸了)时间复杂度与dp同样是O(nm)形式化题意和翻译:有n个长度为m的字符串,你可以选择或不选择来拼接它们,但是不能更改字符串的......
  • SSM教室管理系统 毕业设计-附源码75969
    摘 要随着教育信息化的发展,学校对于教室资源的合理利用和管理变得愈发重要。传统的教室管理方式存在许多问题,如信息不透明、资源浪费和预约冲突等。因此,开发一个教室管理系统具有重要的实际意义。该教室管理系统旨在通过信息化手段实现对教室资源的有效管理和利用。它包......
  • 【LGR-200-Div.4】洛谷入门赛 #27 A-H题解
    A#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;mt19937rnd(time(0));#defineintlonglongtypedeftuple<int,int,int>tp;#definexfirst#defineysecondtypedefpair<int,int>pii;typedefpair<double,double>......
  • CodeForces VP Record
    CodeForcesRound767(contest1628)AMeximumArray考虑二分。二分的时候计算区间$\text{mex}$,参考P4137RmqProblem/mex,主席树即可。时间复杂度$\Theta(n\log^2n)$,无需卡常。BPeculiarMoviePreferences首先,对于一个合法的回文串,容易证明首尾两个字符串一定......
  • CodeForces 1C - Ancient Berland Circus
    先通过三点确定一条直线,然后算出三条向量的夹角,与圆心角对比,如果呈倍数关系,说明可以接受。特别注意EPS1e-2和1e-7过不了全部数据,改成1e-4通过全部数据。点击查看代码#include<bits/stdc++.h>#definedoublelongdoubleusingnamespacestd;constdoublePI=acos(-1);......
  • 通过注释一行代码 开启关闭一个div的css样式 - 开发调试技巧
    通过注释一行代码开启关闭一个div的css样式-开发调试技巧需求:开发的时候,我需要对页面的某个样式反复开关,但是html不能通过注释来开关,所以可以在div的上面加一个js但是vue的template里面不能加script,需要加component重点代码不写v-bindvscode有红色波浪<componentv-bind:......