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

AtCoder Beginner Contest 050

时间:2024-08-23 20:37:04浏览次数:11  
标签:AtCoder Beginner int cin long i64 ++ using 050

基本上独立做出来了。

A - Addition and Subtraction Easy

模拟。

#include <bits/stdc++.h>

using namespace std;
using i64 = long long;

int main() {
	ios::sync_with_stdio(false), cin.tie(nullptr);
	int A, B;
	char C;
	cin >> A >> C >> B;
	if (C == '+') cout << A + B;
	else cout << A - B;
	return 0;
}

B - Contest with Drinks Easy

模拟。

#include <bits/stdc++.h>

using namespace std;
using i64 = long long;

int main() {
	ios::sync_with_stdio(false), cin.tie(nullptr);
	int N, M;
	cin >> N;
	vector<int> T(N), P(110), X(110);
	for (int i = 0; i < N; i++) cin >> T[i];
	cin >> M;
	for (int i = 0; i < M; i++) {
		cin >> P[i] >> X[i];
	}
	for (int i = 0; i < M; i++) {
		int t = T[P[i] - 1];
		T[P[i] - 1] = X[i];
		i64 ans = 0;
		for (int i = 0; i < N; i++) ans += T[i];
		cout << ans << "\n";
		T[P[i] - 1] = t;
	}
	return 0;
}

C - Lining Up

观察发现,当 \(N\) 为奇数时,\(0\) 就是中间位,且必定只有 \(1\) 个,否则错误。且其他数字一定具有对称性,即相差绝对值为 \(k\) 的人可以站在中间位置的两边。用哈希表记录,但凡发现哈希值不为 \(2\) 的,一定错误。

观察得到结论,假若情形成立,答案为 \(\rm 2^{ans}\),其中 \(\rm ans\) 为哈希值为 \(2\)(即成对)的个数。这里可以使用带模数的快速幂来实现。

#include <bits/stdc++.h>

using namespace std;
using i64 = long long;

const int mod = 1e9 + 7;
int p[100005];

i64 qmi(i64 m, i64 k, i64 p) { //快速幂模板,熟练记忆。
	i64 res = 1;
	while (k) {
		if (k & 1) res = res * m % p;
		m = m * m % p;
		k >>= 1;
	}
	return res % p;
}


int main() {
	ios::sync_with_stdio(false), cin.tie(nullptr);
	int N;
	cin >> N;
	vector<int> A(N);
	
	for (int i = 0; i < N; i++) {
		cin >> A[i];
		p[A[i]]++;
	}
	
	bool flag = true;
	if (N % 2 == 1) {
		if (p[0] != 1) {
			flag = false;
		}
		for (int i = 2; i <= N - 1; i += 2) {
			if (p[i] != 2) {
				flag = false;
				break;
			}
		}
	} else {
		for (int i = 1; i <= N - 1; i += 2) {
			if (p[i] != 2) {
				flag = false;
				break;
			}
		}
	}
	
	int ans = 0;
	for (int i = 1; i < N; i++) {
		if (p[i] == 2) ans++;
	}
	if (flag) cout << qmi(2, ans, mod);
	else cout << 0;
	return 0;
}

D - Xor Sum

数位 \(\rm dp\),目前超出了能力范围,以后会补

标签:AtCoder,Beginner,int,cin,long,i64,++,using,050
From: https://www.cnblogs.com/pangyou3s/p/18377062

相关文章

  • AtCoder Beginner Contest 中的小思维题
    078Dhttps://atcoder.jp/contests/abc078/tasks/arc085_b问题陈述我们有一副由\(N\)张牌组成的扑克牌。每张牌上都写着一个整数。从最上面开始的第\(i\)张牌上的整数是\(a_i\)。两个人X和Y将用这副扑克牌玩一个游戏。最初,X手中有一张写有\(Z\)的牌,Y手中有一张......
  • AtCoder Beginner Contest 048
    A-AtCoder***Contest先输出首字母,然后遍历字符串,遇到空格就输出后面的第一个字符。#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;intmain(){ ios::sync_with_stdio(false),cin.tie(nullptr); strings; getline(cin,s); cout<<s[0];......
  • Atcoder Beginner Contest 365
    AtcoderBeginnerContest365A题意输入年份,输出该年份天数。思路略B题意输入一个序列,输出该序列次大值的位置。思路略C题意给定\(N\),序列\(A\)和\(M\)。求满足下条件的\(x\)最大值。\[\sum_{i=1}^{n}\min(x,A_i)\leM\]思路式子左边有单调性,二分\(x\)......
  • AtCoder Beginner Contest 047
    A-FightingoverCandies简单排序。#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;intmain(){ ios::sync_with_stdio(false),cin.tie(nullptr); vector<int>a(3); cin>>a[0]>>a[1]>>a[2]; sort(a.begi......
  • AtCoder Beginner Contest 367
    A-ShoutEveryday思路:水题一道,模拟即可。B-Cut.0思路:直接cin和cout即可,c++输入输出性质。C-EnumerateSequences思路:注意到数据范围很小,因此考虑到搜素所有的序列,然后判断是否合法。D-Pedometer思路:观察到是环上问题,先断环为链,观察题目,可以发现,对于s,它的终......
  • AtCoder Beginner Contest 046
    A-AtCoDeerandPaintCans#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;intmain(){ ios::sync_with_stdio(false),cin.tie(nullptr); set<int>s; for(inti=0;i<3;i++){ intx; cin>>x; s.inser......
  • [AtCoder - tdpc_game] :ゲーム 题解
    [AtCoder-tdpc_game]:ゲーム题解一道小清新\(dp\)题。定义\(dp_{i,j}\)为第一堆山还有\(i\)个物品,第二堆山还有\(j\)个物品,すぬけ君能取得物品的最大价值。由于只能取两座山最上面的物品,假设当前两座山分别有\({x,y}\)个物品,すぬけ君选后只能有两种情况,分别为\(d......
  • AtCoder ABC 367
    前言本题解部分思路来自于网络,仅供参考。A-ShoutEveryday题目大意给定Takahashi每天的睡觉时间和起床时间,求Takahashi在$A$时是睡着的还是清醒的。解题思路根据题意模拟即可。code#include<bits/stdc++.h>usingnamespacestd;intmain(){inta,b,c;......
  • 手提式婴儿摇篮美国站CPC认证要求以及16 CFR Part 1225,ASTM F2050测试办理
    手提式婴儿摇篮上架亚马逊美国站CPC认证要求以及16CFRPart1225,ASTMF2050测试办理手提式婴儿摇篮美国亚马逊CPC认证要求以及16CFRPart1225,ASTMF2050什么是手提式婴儿摇篮?手提式婴儿摇篮是一种独立的、刚性或半刚性的产品,旨在承载乘员,其躯干完全由产品支撑,以方便护理......
  • AtCoder Beginner Contest 367
    题目链接:AtCoderBeginnerContest367总结:发挥很一般,A一直wa。开场有点事,导致D也没debug出来。A.ShoutEverydaytag:模拟Solution:注意\(B>C\)与\(B<C\)的不同情况即可。voidsolve(){  inta,b,c;  cin>>a>>b>>c;  if(c>b){    if(......