首页 > 其他分享 >AtCoder Beginner Contest 336

AtCoder Beginner Contest 336

时间:2024-01-17 21:15:11浏览次数:37  
标签:tmp AtCoder 题意 Beginner int res void 336 cin

题目链接: AtCoder Beginner Contest 336

A - Long Loong

题意:输出Long,其中'o'的数量等于n

解题思路:签到(其实没看清楚题目wa了一发)

查看代码

void solve(){
	int n;
	cin >> n;
	cout << 'L';
	while(n --) cout << 'o';
	cout << "ng";
}

 

B - CTZ

题意:求对应数字的二进制的末尾0

解题思路:反复%2即可

查看代码
 void solve(){
	ll a;
	cin >> a;
	int ans = 0;
	while(a % 2 == 0){
		ans ++;
		a /= 2;
	}
	cout << ans << '\n';
}

 

C - Even Digits

题意:定义好整数为每个数位都是偶数(0,2,4,6,8),求第n个好数

解题思路:进制转换,也就是转化为五进制,但是因为0是第一项,所以先减去1

查看代码
 string ten_to_p(int x, int p) {
	string res;
	int tmp = 0;
	do {
		tmp = x % p;
		if (tmp < 10) res.push_back('0' + tmp);
		else res.push_back('A' + tmp - 10);
		x /= p;
	} while(x);
	//res中从size()-1到0倒序存储
	return res;
}

void solve(){
	int n;
	cin >> n;
	n --;
	string s = ten_to_p(n, 5);
	
	reverse(s.begin(), s.end());
	for(auto i : s){
		if(i == '0') cout << 0;
		else if(i == '1') cout << 2;
		else if(i == '2') cout << 4;
		else if(i == '3') cout << 6;
		else if(i == '4')cout << 8;
	}
}

 

D - Pyramid

题意:给定一个数列,有两种操作:

1:将某一项-1

2:去掉头部或者尾部元素

定义金字塔序列为:1, 2, 3, 4,......,n - 1,n,n - 1,.....,4,3,2,1,求最长金字塔序列的中间值

解题思路:用递推的方式,分别计算每一项前面能够构造出的最长连续上升连续子序列长度q,以及每一项后面能够构造出的最长连续下降子序列长度p,最后的答案就算min(q[i],p[i])

查看代码
 void solve(){
	cin >> n;
	for(int i = 1; i <= n; i ++) cin >> a[i];
	for(int i = n; i >= 1; i --) p[i] = min(p[i + 1] + 1, a[i]);
	for(int i = 1; i <= n; i ++) q[i] = min(q[i - 1] + 1, a[i]);
	int ans = 0;
	for(int i = 1; i <= n; i ++){
		ans = max(ans, min(q[i], p[i]));
	} 
	cout << ans << '\n';
}

标签:tmp,AtCoder,题意,Beginner,int,res,void,336,cin
From: https://www.cnblogs.com/RosmontisL/p/17971174

相关文章

  • AtCoder ABC 279 复盘
    AwwwvvvvvvACCodeBLOOKUPACCodeCRANDOMACCodeDFreefall分析一下样例1,可以发现答案存在一个\(\sqrt{g}\),然后就联想到三分。这里图像是开口朝上的。注意要开longlong!(但我的代码需要__int128才行,玄学)ACCodeECheatingAmidakuji分析过程,可以发现第\(i\)次......
  • Atcoder 336 C
    题目链接https://atcoder.jp/contests/abc336/tasks/abc336_c一开始没有想到第N个数字与N之间的关系,但是在思考的过程中似乎发现了这几个数字与"5"有什么奇怪的联系。但是我想到这里时还没有将这道题和进制转换建立联系,只是觉得可以根据“5”的规律来推出第N个数字的各......
  • AtCoder Grand Contest 046 F Forbidden Tournament
    洛谷传送门AtCoder传送门太厉害了!!!!!!首先竞赛图有个性质,若存在环则一定存在三元环。先把DAG的情况(一条链)特判了。然后缩点。发现非链底的部分不能存在大小\(>1\)的SCC。所以枚举非链底的部分有多少点,转化为SCC的情况。发现对于任意点(设为\(1\)号点),它的前驱连成一条链......
  • Atcoder Beginner Contest 330 题解
    AtCoderBeginnerContest330题解A-CountingPasses签到voidShowball(){intn,l;cin>>n>>l;intcnt=0;for(inti=0;i<n;i++){intx;cin>>x;cnt+=(x>=l);}cout<<cnt<<endl;}B-Minimize......
  • ABC336 F Rotation Puzzle 题解
    QuestionABC336FRotationPuzzle给出一个\(H\timesW\)的矩阵,里面填有数字,有一种操作选定一个\((x,y)\)交换\((i+x,j+y)\)和\((H-i+x,W-j+y)\)对于每一个\(1\lei\leH-1,1\lej\leW-1\)问,是否能经过\(20\)次以内的操作使得,最后的矩形变成\((i,j)=((i-1)\t......
  • AtCoder Beginner Contest 336
    B-CTZ难度:⭐题目大意给定一个数n,输出其二进制最后有几个连续的0;解题思路模拟一下就行;神秘代码#include<bits/stdc++.h>#defineintlonglong#defineIOSios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#defineendl'\n'usingnamespacestd;......
  • abc336 E - Digit Sum Divisible 题解 数位DP
    题目链接:https://atcoder.jp/contests/abc336/tasks/abc336_e题目大意:我们定义一个整数\(n\)的数位和为\(n\)的十进制表示中的各位上的数字之和。比如:整数\(2024\)的数位和为\(2+0+2+4=8\)。一个正整数\(n\)被称作一个好数如果\(n\)能被它的数位和整除......
  • AtCoder Beginner Contest 336
    AtCoderBeginnerContest336比赛链接A-LongLoong思路:简单的模拟代码:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongvoidsolve(){intn;//cin>>n;cin>>n;cout<<"L";for(inti=......
  • AtCoder Grand Contest 051 D C4
    洛谷传送门AtCoder传送门下文的点\(1,2,3,4\)对应原题面中的\(S,T,U,V\)。直接对无向图欧拉回路计数不太好做。考虑给边定向。枚举有\(i\)条边是从\(1\)到\(2\)的。那么\(2\to1\)有\(a-i\)条边。由于这个图必须满足每个点的入度等于出度,设\(j\)条\(......
  • ABC336
    T1:LongLoong模拟代码实现n=int(input())print('L'+'o'*n+'ng')T2:CTZ__builtin_ctz或countr_zero代码实现#include<bits/stdc++.h>usingnamespacestd;intmain(){unsignedn;cin>>n;cout<......