首页 > 其他分享 >AtCoder Beginner Contest 279 A-E 题解

AtCoder Beginner Contest 279 A-E 题解

时间:2023-02-27 20:34:50浏览次数:46  
标签:AtCoder main int 题解 scanf mid ++ 279 include

比赛链接

A - wwwvvvvvv

直接模拟

#include<cstdio>
#include<cstring>

const int N = 105;
int n, ans;
char s[N];

int main() {
	scanf("%s", s + 1);
	for(int i = 1; i <= strlen(s +1); i ++) {
		if(s[i] == 'v') ans ++;
		else ans += 2;
	}
	printf("%d", ans);
	return 0;
}

B - LOOKUP

枚举模拟。

#include<cstdio>
#include<cstring>

const int N = 105;
int n, m, ans;
char s[N], t[N];

int main() {
	scanf("%s %s", s + 1, t + 1);
	n = strlen(s + 1), m = strlen(t + 1);
	for(int i = 1, j; i  + m - 1 <= n; i ++) {
		for(j = 1; j <= m; j ++) {
			if(s[i + j - 1] != t[j]) break;
		}
		//printf("%d %d\n", i, j);
		if(j == m + 1) {
			puts("Yes");
			return 0;
		}
	}
	puts("No");
	return 0;
}

C - RANDOM

只要将字符数组每列都存储一下,再通过枚举其中一个字符数组的列,寻找在另一个字符数组中是否有与其相同的列即可。

#include<bits/stdc++.h>
using namespace std;
int main() {
	int h,w;
	cin >> h >> w;
	vector <string> s(w);
	vector <string> t(w);
	for(int i = 0; i < h; i ++) {
	    for(int j = 0; j < w; j ++) {
	    	s[j].resize(h), cin >> s[j][i];
		}
	}
	for(int i = 0; i < h; i ++) {
	    for(int j = 0; j < w; j ++) {
	    	t[j].resize(h), cin >> t[j][i];
		}
	}
	sort(s.begin(), s.end()), sort(t.begin(), t.end());
	for(int i = 0; i < w; i ++)  {
		if(s[i] != t[i]){
			puts("No");
    		return 0;
		}
	}
	puts("Yes");
    return 0;
}

D - Freefall

三分。

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
#define int long long
long double a, b, c, d;
long double num(int x) {
	return b * x + a / sqrt(x + 1);
}
signed main() {
	scanf("%llf %llf", &a, &b), c = a;
	int l, r, mid;
	
	if(a < b) {
		mid = 1;
		while(1) {
			d = num(mid);
			if(d > c) {
				printf("%.10llf", c);
				return 0;
			}
			c = d, mid ++;
		}
	}
	else {
		l = 0, r = 1e18;
		while(l <= r) {
			mid = (r - l) / 2 + l;
			if(num(mid) < num(mid - 1) && num(mid) < num(mid + 1)) {
				printf("%.10llf", num(mid));
				return 0;
			}
			if(num(mid) < num(mid - 1)) l = mid + 1;
			else r = mid - 1;
		}
	}
	return 0;
}

E - Cheating Amidakuji

。。。

#include<cstdio>
#include<algorithm>
using namespace std;
const int N = 2e5 + 5;
int n, m, a[N], b[N], c[N], ans[N];

int main() {
	scanf("%d %d", &n, &m);
	for(int i = 1; i <= m; i ++) scanf("%d", &a[i]), c[i] = i;
	b[1] = 1;
	for(int i = 1, j; i < m; i ++) {
		j = b[i];
		if(j == a[i]) b[i + 1] = j + 1;
		else if(j == a[i] + 1) b[i + 1] = j - 1;
		else b[i + 1] = j;
	}
	for(int i = m; i; i --) {
		ans[i] = c[b[i]];
		swap(c[a[i]], c[a[i] + 1]);
	}
	for(int i = 1; i <= m; i ++) printf("%d\n", ans[i]);
	return 0;
}

标签:AtCoder,main,int,题解,scanf,mid,++,279,include
From: https://www.cnblogs.com/Spring-Araki/p/17161767.html

相关文章

  • AtCoder Beginner Contest 291 A-F 题解
    。。。比赛链接A-camelCase直接循环判断。#include<cstdio>#include<cstring>constintN=20;chars[N];intmain(){ scanf("%s",s+1); for(inti=1;......
  • Atcoder试题乱做 Part8
    我喜欢这样跟着你,随便你带我到哪里.\(\text{[ABC231H]MinimumColoring}\)\(\color{green}{\text{[EASY]}}\)显然的行列二分图模型,一个可以染色的格子对应一个权值为......
  • Atcoder ABC 291
    AtcoderABC291D题意n张牌,每张牌两面都有数字,可以翻面,问有多少种情况使得这n张牌中每相邻两张牌表面上的数互不相同思路线性dp,每次比较当前位和上一位是否相同即可......
  • 题解:【ABC291F】Teleporter and Closed off
    题目链接给定一个\(n\)个点的图,每个点只向编号最多大于它\(m\)的点连单向边,求不经过\(2\simn\)中的一个点,\(1\ton\)的最短路。注意到\(m\)很小,这里给出两种......
  • 【Eclipse 问题】Eclipse老项目打包war后的WEB-INF目录下没有classes文件夹的问题解决
    1.右键项目Properties2.选中JavaBuildPath中的Source3.点击浏览4.在WEB-INF目录下新建一个classes文件夹,用来存放编译好的class文件。5.完成......
  • AtCoder Beginner Contest 291
    比赛链接A-camelCase题目大意给一个由英文字母构成的字符串\(S\),\(S\)中只有一个大写字母,输出该大写字母是字符串中第几个字母。题目思路遍历字符串找出大写字母......
  • 【题解】CTT 2020 Day 1
    目录A.术树数B.树数术C.述树术A.术树数注意到路径+环的组合仍然可行,因为我们可以在无影响的情况下加入环(显然一条边也算二元环)。而对于每条边,如果其在某些环内,只要......
  • 【题解】CTT 2020 Day 3
    目录A.计数鸡B.PerotationC.树特卡克林A.计数鸡考虑\(\sum\limits_{i}\sum\limits_{j>i}[p_i\geqp_j]+[(p_i+h_i)\geqq_j]\),前部分是逆序对,而偶数让人想到行列式......
  • 【题解】CTT 2019 Day 2
    目录A.循环序列B.MatrixC.杀蚂蚁简单版A.循环序列即求\(\sum\limits_{i=0}^{c}{k\choosem+in}\),即\(\frac{1}{n}\sum\limits_{j=0}^{n-1}\sum\limits_{i=0}^{k-m}......
  • 【题解】CTT 2019 Day 1
    目录A.递增树列B.异世界的文章分割者C.时间旅行A.递增树列令\(f_{u,i}\)表示\(u\)的子树,已经用掉\(i\)个点,剩下的点排列满足要求的方案数。考虑方案的计算,用......