ABC350
A
link

把最后三位取成数字,判断是否小于\(349\),大于\(1\),不等于\(316\)。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
char s[10];
int ans;
signed main(){
cin >> s+1;
ans += s[4]-48;
ans *= 10;
ans += s[5]-48;
ans *= 10;
ans += s[6]-48;
if(ans >= 1&&ans <= 349
&&ans != 316) cout << "Yes";
else cout << "No";
return 0;
}
B
link

用一个数组存每个牙是不是还在,模拟即可。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,q;
int ans;
int a[1005];
signed main(){
cin >> n >> q;
while(q--){
int x;
cin >> x;
if(a[x]) a[x] = 0,ans--;
else a[x] = 1,ans++;
}
cout << n-ans;
return 0;
}
C
link

由于没有要求最小次数,第\(i\)次只需要把\(i\)这个数字换到\(i\)这个位置,用一个数组存\(i\)这个数字当前在哪个位置。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n;
int a[200005];
int ans;
int l[200005],r[200005];
int mp[200005];
signed main(){
cin >> n;
for(int i = 1;i <= n;++ i)
cin >> a[i],mp[a[i]] = i;
for(int i = 1;i <= n;++ i){
if(a[i] != i){
ans++;
int t = mp[i];
swap(mp[a[i]],mp[i]);
swap(a[i],a[t]);
l[ans] = i,r[ans] = t;
}
}
cout << ans << endl;
for(int i = 1;i <= ans;++ i)
cout << l[i] << " " << r[i] << endl;
return 0;
}
D
link

首先有一个特点,如果把人看成点,关系看成边,那么每一个连通块任意两点间都可以连边,有\(\frac{n(n-1)}{2}\)条边(\(n\)为点数)。
求出有多少联通块以及每个联通块中点的个数即可,把每个联通块可以连的边数加起来,减去现有的边数即可。
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
vector<int> ed[200005];
int cn,ans;
bool vs[200005];
void dfs(int x){
cn++;
for(int i = 0;i < ed[x].size();++ i){
int j = ed[x][i];
if(!vs[j]) vs[j] = 1,dfs(j);
}
}
signed main(){
cin >> n >> m;
for(int i = 1;i <= m;++ i){
int x,y;
cin >> x >> y;
ed[x].push_back(y);
ed[y].push_back(x);
}
for(int i = 1;i <= n;++ i){
if(vs[i]) continue;
cn = 0;
vs[i] = 1;
dfs(i);
ans += cn*(cn-1)/2;
}
ans -= m;
cout << ans;
return 0;
}
随机推荐
- Nginx 修饰符 Location 详解
概述 location 指令可以用在虚拟服务器 server 部分,并且意味着提供来自客户端的 URI 或者内部重定向访问. location 的定义如下: location [modifier] u ...
- c#动态执行脚本的3种方式详解
1.使用Roslyn编译器 2.使用IronPython或IronRuby 3.使用JavaScript引擎 在C#中,可以使用一些第三方库或内置类库实现动态执行脚本的功能.以下是几个常用的方案: 1 ...
- 【工作记录】JDBC连接MySQL,跨时区调查CST转Asia/Shangha
根据业务要求,不同的国家设置jvm参数,来确定当前时区. // -Duser.timezone=Asia/Kolkata 印度加尔各答 GMT+05:30 // -Duser.timezone=Asi ...
- 挨个配置资源组太麻烦?ROS伪参数一步搞定!
介绍 伪参数 伪参数是资源编排服务ROS的编排引擎提供的固定参数,即在编写模板时可以使用的一系列预定义的参数,它们为模板提供了资源部署过程中的环境和执行上下文信息. 更多伪参数介绍请查看:ROS伪参数 ...
- docker lnmp配置
1.lnmp网络与目录规划 172.16.10.0/24 nginx:172.16.10.10 mysql:172.16.10.20 php:172.16.10.30 网站访问主目录:/wwwroot ...
- NSInvocation 返回值在ARC下面的释放问题
一.先看下面的代码 -(NSArray *) operationFromTakeoffAction:(NSString *) action AtPoint:(CGPoint) flightPoint ...
- iOS符号表手工还原
1.通过Xcode的Device工具导出app.crash文件 2.将.crash 和 .dSYM符号 app放在同一个目录中 3.寻找symbolicatecrash,将symbolicatecra ...
- Linux下更新Python版本
参考:安装图形化配置解析工具_LiteOS_编译和开发工具_Linux下的编译_搭建Linux编译环境_华为云 (huaweicloud.com) 系统:Centos7 $ uname -a Linu ...
- c# winfrom DataGridView 动态UI下载功能(内含GIF图) || 循环可变化的集合 数组 datatable 等
Gif演示 分解步骤 1,使用组件DataGridView 2,使用DataSource来控制表格展示的数据来源(注意:来源需要是DataTable类型) 3,需要用到异步线程.如果是不控制数据源的话 ...
- springboot3时代创建springboot2程序项目
springboot3时代创建springboot2程序项目 目前,IDEA,springboot 官网,都不能创建基于JDK8(JDK1.8)的springboot程序了. 解决办法: 1. 先在官 ...