Codeforces Round #692 (Div. 2, based on Technocup 2021 Elimination Round 3)
A.In-game Chat
题目:就是从后面数连着的‘('的个数是不是严格比剩下的字符多
思路:水题,直接从后往前遍历即可
代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int main(){
char s[1500];
int t;
scanf("%d",&t);
while(t--){
// scanf("%s",&s);
int n;
int sum=0,flag=0;
scanf("%d",&n);
scanf("%s",&s);
for(int i=n-1;i>=0;i--){
if(s[i]==')'&&flag==0){
sum++;
}else{
flag=1;
}
}
if(sum>n-sum){
printf("Yes\n");
}else{
printf("No\n");
}
}
}
B.Fair Numbers
题目:一个数是公平的,当这个数可以整除它的每一位非零数。问给定一个数n,找到最小的数x(n<=x)是公平的
思路:暴力模拟就行,直接判断每个数是不是公平的即可(因为1-9的最小公倍数是2520,很小)
这个题当时看到这么多交的可能是暴力,写完以后发现最坑的地方是%0,当0是除数的情况
代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int main(){
int t;
scanf("%d",&t);
while(t--){
long long int num;
int a[150];
scanf("%lld",&num);
for(long long int i=num;;i++){
long long int n=i;
int flag=0; while(n!=0){
int t=(n%10);
if(t==0){
n/=10;
continue;
}
if(i%t!=0){
flag=1;
break;
} //printf("%lld\n",i);
n/=10; }
if(flag==0){
printf("%lld\n",i);
break;
}
}
}
}
C.Peaceful Rooks
题目:一个二维平面(n×n),在平面上有m个点。在进行一次操作时,可以选择其中的一个点进行平行或者垂直移动,并且移动后这m个点的横纵坐标两两不相等,问为使这m个点都在主对角线上(坐标的横纵坐标相等)所需要的最小的移动次数是多少
思路:最原始的平移方法就是通过移动直接平移或者垂直移动到所在位置的主对角线上,通过把二维平面转换为图,然后如果存在环的话,就是这些点不能够通过上述最简单的移动方式达到,因为他们相互限制,这样的话就需要多加一步,随便一个点移除这个状态。
这个题就要记住一个是找根和并查集,再就是二维平面转换为图的问题。类似的问题还有小孩子们分巧克力的问题,x和y是某个小孩子最喜欢的巧克力,然后每个小孩子分配到自己喜欢的巧克力最少需要多少步
代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
const int maxx=1e5+10;
int parent[maxx];
int findd(int x){
if(parent[x]==x){
return x;
}
return parent[x]=findd(parent[x]);
}
int main(){
int t;
scanf("%d",&t);
while(t--){
int n,m;
scanf("%d %d",&n,&m);
//int parent[maxx];
for(int i=1;i<=n;i++){
parent[i]=i;
}
int sum=0;
for(int i=0;i<m;i++){
int x,y;
scanf("%d %d",&x,&y);
if(x==y){
continue;
}
sum++;
int fx=findd(x),fy=findd(y);
if(fx==fy){//有环,并且自己死锁的那种情况已经排除
sum++;
}else{
parent[x]=fy;
}
}
printf("%d\n",sum);
}
}
Codeforces Round #692 (Div. 2, based on Technocup 2021 Elimination Round 3)的更多相关文章
- Codeforces Round #692 (Div. 2, based on Technocup 2021 Elimination Round 3) C. Peaceful Rooks (思维,dsu找环)
题意:一个棋盘上有一些"车",现在要让这些"车"跑到左倾斜的对角线上,每次可以移动一个棋子,但是棋盘的任意时刻都不能出现一个"车"能吃另一个 ...
- Codeforces Round #679 (Div. 2, based on Technocup 2021 Elimination Round 1)
考场上只做出来四道,第二天一早就写出来了E,蛮绝望的. A Finding Sasuke 水构造 #include <cstdio> #include <algorithm> ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) D. XOR-gun (二进制,异或,前缀和)
题意:给你一组非递减的数,你可以对两个连续的数进行异或,使其合并为一个数,问最少操作多少次使得这组数不满足非递减. 题解:首先,给出的这组数是非递减的,我们考虑二进制,对于三个连续的非递减的最高位相同 ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) C. Bouncing Ball (后缀和,枚举)
题意:有一长度为\(n\)的平台,平台有的位置有木桩,可以使小球弹起来,小球必须从第\(p\)个位置开始,而且每次都会向右弹\(k\)个单位,然后有的位置是没有木桩的,你可以在这些的空的位置放一个木桩 ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) B. Repainting Street (枚举)
题意:有\(n\)栋房子,每栋房子都有自己的颜色\(c_i\),你每次可以对连续的长度为\(k\)的区间改变任何房子的颜色,问最少多少次可以使得所有房子颜色相同. 题解:因为只有\(100\)中颜色, ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) A. Prison Break
题意:有一张\(n\)x\(m\)的图,图中每个点都关押着罪犯,在坐标\((r,c)\)处有一个出口,每名罪犯每秒可以可以像上下最有移动一个单位或者不动,问所有罪犯能够逃离监狱的最少时间. 题解:直接 ...
- Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2)
A. Prison Break 题意:就是在一个n*m的矩阵中,以(1,1)为起点(n,m)为终点,每个点以每个单位1s的速度移动,问总共至少需要多少秒,所有的矩阵点就能够全部移动到(r,c)中 思路 ...
- Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2)
Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2) #include <bits/stdc++ ...
- Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2)
A - Forgetting Things 题意:给 \(a,b\) 两个数字的开头数字(1~9),求使得等式 \(a=b-1\) 成立的一组 \(a,b\) ,无解输出-1. 题解:很显然只有 \( ...
随机推荐
- CentOS7使用NTP搭建时间同步服务器
前言 为什么要搭建时间同步服务器呢?场景是这样的. 我们有两台CentOS服务器,其中一台是可以连接外网的,下文中我们称它为A服务器,另一台不能连接外网,但是与A服务器在同一局域网中,下文中我们称它为 ...
- java例题_42 求满足809*??=800*??+9*??+1的??的值
1 /*42 [程序 42 求数字] 2 题目:809*??=800*??+9*??+1 3 其中??代表的两位数,8*??的结果为两位数,9*??的结果为 3 位数.求??代表的两位数,及 809* ...
- 清明节特辑 |记忆存储、声音还原、性格模仿……AI可以让人类永生吗?
摘要:如果能用AI "复活"逝去的亲人 你愿意吗? 清明节,很少有人会去特地想这样一个问题:我们为什么要给过世的人修墓,然后每年固定的时间去扫墓?当农耕文化的色彩褪去,清明节的祭祀 ...
- js 日期加减
加: console.log(moment().format("YYYY-MM-DD HH:mm:ss")); //当前时间 console.log(moment().add(10 ...
- 从零玩转SpringSecurity+JWT整合前后端分离
从零玩转SpringSecurity+JWT整合前后端分离 2021年4月9日 · 预计阅读时间: 50 分钟 一.什么是Jwt? Json web token (JWT), 是为了在网络应用环境间传 ...
- python基础(补充):python三大器之装饰器
函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): i = ...
- Go+gRPC-Gateway(V2) 微服务实战,小程序登录鉴权服务(五):鉴权 gRPC-Interceptor 拦截器实战
拦截器(gRPC-Interceptor)类似于 Gin 中间件(Middleware),让你在真正调用 RPC 服务前,进行身份认证.参数校验.限流等通用操作. 系列 云原生 API 网关,gRPC ...
- antd+react项目迁移vite的解决方案
antd+react+webpack往往是以react技术栈为主的前端项目的标准组合,三者都有成熟的生态和稳定的表现,但随着前端圈的技术不断革新,号称下一代构建平台vite2的发布,webpack似乎 ...
- Tomcat9配置HTTP/2
1 概述 Tomcat从Tomcat8的一些较新版本就支持HTTP/2了,Tomcat9直接支持,本文首先讲述了相关HTTP/2的特性,接着利用一个简单的开源工具mkcert生成证书并利用该证书配置H ...
- Manjaro 蓝牙连接问题
1 问题描述 蓝牙不能连接,或者连接上了没有声音. 2 解决方案 首先确保相应软件包存在: sudo pacman -S bluez bluez-utils pulseaudio-bluetooth ...