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;
}
随机推荐
- Sed 日常使用介绍
Sed 日常使用介绍 简介 sed 是 unix 环境下常用的流处理工具, 可以处理字符流, 文件或者二进制文件流. 各个 unix/linux 发行版都会配备 sed 及其衍生的命令工具, 因此, ...
- Android 12(S) MultiMedia Learning(六)NuPlayer Decoder
接下来将会从4个角度来记录NuPlayerDecoder部分 相关代码路径: http://aospxref.com/android-12.0.0_r3/xref/frameworks/av/medi ...
- .NET Core 中使用GBK GB2312编码报错的问题
错误描述 环境 dotnet core 2.1 2.2 dotnet core 3.1 dotnet core 5.0 现象 当代码中使用 System.Text.Encoding.GetEnco ...
- 什么是LLM大模型训练,详解Transformer结构模型
本文分享自华为云社区<LLM 大模型学习必知必会系列(四):LLM训练理论篇以及Transformer结构模型详解>,作者:汀丶. 1.模型/训练/推理知识介绍 深度学习领域所谓的&quo ...
- C语言打印数字前补0
1.要求说明 例如有个数据为a = 0x10,要求打印输出为0x000010. 2.实现 1 #include <stdio.h> 2 3 4 int main() 5 { 6 int a ...
- EF INNER JOIN WHERE ORDER BY
同时使用 join,where,order by. UpdaterDbContext db = new UpdaterDbContext(); // 按 t_server 表的 seq ASC 排序, ...
- Python基础——上节补充及数据类型
1.变量的创建过程 当我们创建一个变量name='oldboy'时,实际上是这样一个过程. 程序先开辟了一个内存空间,把变量的内容放进去,再让变量name指向'oldboy'所在的内存地址. 我们可以 ...
- R语言求取大量遥感影像的平均值、标准差:raster库
本文介绍基于R语言中的raster包,批量读取多张栅格图像,对多个栅格图像计算平均值.标准差,并将所得新的栅格结果图像保存的方法. 在文章基于R语言的raster包读取遥感影像中,我们介绍了基 ...
- Linux 内核:initcall机制与module_init
Linux 内核:initcall机制与module_init 背景 在做分享的时候,被资深的同事问起关于驱动加载时机与probe的问题.发现自己并不熟悉,因此学习了解一下. 学习本文你就可以知道,内 ...
- Linux中的IDR机制
# Linux中的IDR机制 背景 最近在学习 Linux的i2c子系统,看到代码中有关于IDR的调用.了解了一下有关的文档,发现是用来管理指针(对象实例). //based on linux V3. ...