首页 > 其他分享 >AtCoder Beginner Contest 280 A-F 题解

AtCoder Beginner Contest 280 A-F 题解

时间:2023-02-27 20:57:03浏览次数:57  
标签:AtCoder main using int 题解 namespace ans 280 include

比赛链接

A - Pawn on a Grid

模拟。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;

const int N = 15;

int n, m, ans;
char s[N];

int main() {
	
	scanf("%d %d", &n, &m);
	for(int i = 1; i <= n; i ++) {
		scanf("%s", s + 1);
		for(int j = 1; j <= m; j ++) ans += s[j] == '#';
	}
	printf("%d", ans);
	return 0;
}

B - Inverse Prefix Sum

前缀和相减,数列基础。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define ll long long
const int N = 15;

int n;
ll a[N];

int main() {
	
	scanf("%d", &n);
	
	for(int i = 1; i <= n; i ++) scanf("%lld", &a[i]);
	
	for(int i = 1; i <= n; i ++) {
		printf("%lld ", a[i] - a[i - 1]);
	}
	
	return 0;
}

C - Extra Character

枚举,判断。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;

const int N = 5e5 + 5;

int n, m, ans, dp[N][2];
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; i <= n; i ++) {
		if(s[i] != t[i]) {
			printf("%d", i);
			return 0;
		}
	}
	printf("%d", m);
	return 0;
}

D - Factorial and Multiple

若 a 为 b 的倍数,那么 a 一定包含 b 的所有质因数。

因此我们考虑对 n 进行质因数分解,并求出每个质因数的数量,

最后找出符合条件的答案即可。

具体操作看代码。

#include <bits/stdc++.h>
using namespace std;
long long k, i, a, n, x, ans=1;
int main() {
	scanf("%lld", &k);
	for(i = 2; i * i <= k; i ++) {
		a = n = 0;;
		while(k % i == 0) k /= i, a++;
		while(a > 0) {
			n += i, x = n;
			while(x % i == 0) x /= i, a--;
		}
		ans = max(ans, n);
	}
	ans = max(ans,k);
	printf("%lld", ans);
	return 0;
}

E - Critical Hit

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

using mint = modint998244353;

int main() {
	int n,p;
	mint x=1, ans=1;
	cin >> n >> p;
	for(int i=1;i<n;i++){
		x=mint(1)-x*mint(p)/mint(100);
		ans+=x;
	}
	cout << ans.val() <<endl;
	return 0;
}

F - Pay or Receive

有向带权图。

显然,如果询问的两个点不在同一个连通块,那么无解。

否则若存在非零环,则可以无穷大,正环就无限走,负环就无限反着走。

判环的就搜索的时候标记一下当前点是否被访问过多次。

又因为每条路径唯一,所以两点的路径费用唯一。

所以可以任取一个起点开始bfs。

最后的 cost(x,y)= d[y]-d[x].

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector> 
using namespace std;
#define mk make_pair
#define fi first
#define se second
#define ll long long
const int N = 1e5 + 5;

int n, m, q, tot, vis[N], f[N];
ll dp[N];

vector< pair<int, int> > G[N];
void dfs(int x) {
	vis[x] = tot;
	int ver;
	for(int i = 0; i < G[x].size(); i ++) {
		ver = G[x][i].fi;
		if(vis[ver]) {
			f[tot] |= dp[x] - dp[ver] + G[x][i].se != 0;
		}
		else dp[ver] = dp[x] + G[x][i].se, dfs(ver);
	}
}


int main() {
	int u, v, w;
	scanf("%d %d %d", &n, &m, &q);
	for(int i = 1; i <= m; i ++) {
		scanf("%d %d %d", &u, &v, &w);
		G[u].push_back(mk(v, w));
		G[v].push_back(mk(u, -w));
	}
	
	for(int i = 1; i <= n; i ++) {
		if(!vis[i]) tot++, dfs(i);
	}
	
	while(q --) {
		scanf("%d %d", &u, &v);
		if(vis[u] ^ vis[v]) puts("nan");
		else if(f[vis[u]]) puts("inf");
		else printf("%lld\n", dp[v] - dp[u]);
	}
	return 0;
}

标签:AtCoder,main,using,int,题解,namespace,ans,280,include
From: https://www.cnblogs.com/Spring-Araki/p/17161853.html

相关文章

  • AtCoder Beginner Contest 279 A-E 题解
    比赛链接A-wwwvvvvvv直接模拟#include<cstdio>#include<cstring>constintN=105;intn,ans;chars[N];intmain(){ scanf("%s",s+1); for(inti=1......
  • 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}......