首页 > 其他分享 >Round 970

Round 970

时间:2024-09-06 20:51:44浏览次数:8  
标签:AC Code puts 970 int 算法 反思 Round

A.Sakurako's Exam

算法:模拟

具体思路:

a个1,b个2 ,使他们的和为 0 ;

规律:

1.当两个数中,一个数不存在时,另一个数的个数必须要有偶数个

2.当1有偶数个时,2可以有奇数个或者是偶数个

3.当1有奇数个时,如何都不满足;

反思:不要着急,慢慢想

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

int n,a,b;

int main() {
	scanf("%d",&n);

	while(n--) {
		scanf("%d%d",&a,&b);

		if(a == 0) {
			if(b % 2) puts("NO");
			else puts("YES");
		}
		else if(b == 0){
			if(a % 2) puts("NO");
			else puts("YES");
		}
		else if(a % 2) puts("NO");
		else puts("YES");
	}
	return 0;
}

B.Square or Not

算法:模拟

具体思路:

1.首先读入的字符串长度是否能够成正方形

n != sqrt(n) * sqrt(n)

2.枚举字符串找是否满足条件;

边界上的值是否为1,里面的是否为 0,即可

字符串到矩阵的转换 s[(i-1) * sqrt(n) + j]

反思:

还是需要多做题,需要经验值

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

const int N = 2e5 + 10;

int T,n;
char a[N];

void solve() {
	scanf("%d",&n);
	scanf("%s",a+1);

	int len = sqrt(n);

	if(n != len * len) {
		puts("No");
		return;
	}

	for(int i = 1; i <= len; i++) {
		for(int j = 1; j <= len; j++) {
			int op = 0;
			//边界上值全部为 1
			if(i == 1 || i == len || j == 1 || j == len) op = 1;
			if((a[(i-1) * len + j] - '0' )!= op) {
				puts("No");
				return;
			}
		}
	}
	puts("Yes");
	return;
}
int main() {
	scanf("%d",&T);

	while(T--) {
		solve();
	}
	return 0;
}

C. Longest Good Array

算法:贪心

具体思路:

1.题目要求:数组时递增的且相邻的元素之间的差也是递增的

贪心的令相邻的间隔最小且递增

第一个数为 L, 第 $n + 1$ 个数为 $ L + n (n + 1)/2 <= R $

通过二分查找 n ;

知识点:1+2+3+...+n = n * (n+1)/2

反思:
没想到等差数列

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

const int N = 2e5 + 10;

int T;
int a,b;

void solve() {
     scanf("%d%d",&a,&b);
     
     int len = b - a ;
     
     //二分查找 n的值 
     int l = 0, r = 1e9;
     while(l < r)
	 {
     	int mid = l + r + 1 >> 1;
     	if(1LL* mid * (mid + 1) / 2 <= len) l = mid;
     	else r = mid - 1;
	 }
     printf("%d\n",l + 1);
}
int main() {
	scanf("%d",&T);

	while(T--) {
		solve();
	}
	return 0;
}

D.Sakurako's Hobby

算法: dfs

具体思路:

同一个置换环上的点可以相互到达,并查集合并维护置换环上的点

ans[N] : 存放每一个 i 能够到达黑色格子的数量

1.对于每一个i, i--> p[i] ;

如果p[i]是黑色,那么 cnt ++;

2.dfs(a[p[i]]) i = p[i];

dfs找环,当跳到的格子是已经访问过的说明我们已经找到环了,返回达到黑色格子的数量 cnt;

反思:

没有理解题面 i--> p[i] , 即 i = p[i] ;

AC Code

E.

算法:

具体思路:

反思:

AC Code

F.

算法:

具体思路:

反思:

AC Code

G.

算法:

具体思路:

反思:

AC Code

H.

算法:

具体思路:

反思:

AC Code

标签:AC,Code,puts,970,int,算法,反思,Round
From: https://www.cnblogs.com/ltphy-/p/18400981

相关文章

  • P6638 「JYLOI Round 1」常规 题解
    题目传送门前置知识可持久化线段树|前缀和&差分解法进行差分,区间查询转化成前缀和相减。先将\(\{a\}\)升序排序。设当前询问的区间为\([1,r]\),在\(\{a\}\)中找到一个最大的\(pos\)使得\(a_{pos}\ler\),则\([1,r]\)中所做常规的次数为\(\sum\limits_{i=1......
  • Codeforces Round 621 (Div. 1 + Div. 2)
    USACO入侵CFA.CowandHaybales题意:一行\(n\)个数,每次可以将1从一个数移动到相邻的数,求\(d\)次内\(a_1\)最大值。思路:显然先移动\(a_2\),然后依次类推。提交记录B.CowandFriend题意:在二维平面上,一次只能走恰好\(a_1\sima_n\)中的一个数,求从原点走到\((x......
  • WPF ListBox ListBoxItem Selected background style
    <Windowx:Class="WpfApp340.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft......
  • Codeforces Round 968 (Div. 2)
    Preface今天课比较少,就抽点时间补一下之前欠的CF这场总体来说题还算简单,E1之前的题基本都是一眼,不过E2没往转化到区间不交的情况想,F更是完全没想到colorcoding,只能说太菜太菜A.TurtleandGoodStrings不难发现只要比较开头和结尾的字符是否相同即可#include<cstdio......
  • Codeforces Round 947 (Div. 1 + Div. 2) VP记录
    CodeforcesRound947(Div.1+Div.2)VP记录我是唐诗,我是唐诗,我是唐。场切:ABCE。笑点解析D是我不在场的GJ模拟赛的T1签到题。A找\(a_i<a_{i-1}\)然后按数量分讨即可。B最小值要取,不能被最小值表示出来的数的最小值要取,暴力即可。C先对相邻两个值的较小......
  • Codeforces LATOKEN Round 1 (Div. 1 + Div. 2)
    A.ColourtheFlag题意:给定一个棋盘,一些格子已经染上黑白色,判断能否将剩下的格子染色,使得相邻格子不同色。输出构造。思路:考虑一个棋盘的合法染色方案只有两种,分别比较一下即可。提交记录B.HistogramUgliness题意:一个柱状图,权值定义为操作次数加上竖直方向的周长。一次......
  • Codeforces Round 971 (Div. 4) ABCD题详细题解(C++,Python)
    前言:    本文为CodeforcesRound971(Div.4)ABCD题的题解,包含C++,Python语言描述,觉得有帮助或者写的不错可以点个赞    比赛打了没一半突然unrated了就不是很想继续写了,早起写个题解    (之前的div3也没复盘,哎真菜)目录题A:题目大意和解题......
  • Codeforces Round 969 (Div. 1)
    Preface暑假最后几天疑似有点摆过头了,训练也没咋训,CF也没咋打这周末就是网络赛了,虽然名额早就满了,但还是得写写题找下手感不然要被学弟暴打了这场由于是Div.1/2分场,补题就只写Div.1的题了A.IrisandGameontheTree首先考虑快速计算一个01串的贡献,不难发现一段相......
  • Codeforces Round 971 (Div. 4) E 题解析
    #E题Klee'sSUPERDUPERLARGEArray!!!题目描述思路:对于这道题,首先观察到题目求的是最小可能值,而且数据的范围是1e9范围,所以首先可以考虑的方法就是O(logn)的方法,而适合求最值的方法无疑就是二分搜索,可以通过二分来不断缩小答案的区间......
  • Codeforces Round 969 (Div. 1 + 2)
    A将序列转化为\(01\)串,奇数为\(1\),偶数为\(0\)。容易发现两个\(0\)不能分在同一组,于是答案的上限取决于奇数的个数,并且容易构造方案达到这个上界,随便做做就行。B将序列排序后,发现不管怎么加,大小顺序不变,记录下最大值按题意模拟。C根据基本数论知识可得,操作等价于加上......