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; }

随机推荐

  1. ubuntu下openCV-Haar特征分类器训练

    ubuntu下openCV-Haar特征分类器训练 这段时间在学openCV,准备做一个头部检测,但是openCV自带的分类器只有人脸检测的,而且准确度不高,就准备自己训练一个分类器.在网上看了很多的 ...

  2. Tkinter界面实操

    常用opencv-python进行图像处理,有时需要图形用户界面,写个Demo以备不时之需. Tkinter 1. 导入库 由于 Tkinter 是内置到 python 的安装包中.只要安装好 Pyt ...

  3. 地址栏hash模式以?问号分割也可以分割的

    可以看到href里面hash没有? 但是还是以?分割了 就很不明白 但是我就indexof判断有没有? 再进行下一步逻辑 这里记录一下坑

  4. 常见的请求方式 json字符串

     常见的请求方式:                 GET                       get请求携带的数据,存储在地址栏中                     搜索数据时使用ge ...

  5. vue组件 定义全局组件

    组件 (Component) 是 Vue.js 最强大的功能之一,它是html.css.js等的一个聚合体. 组件化 将一个具备完整功能的项目的一部分分割多处使用 加快项目的进度 可以进行项目的复用 ...

  6. kettle从入门到精通 第十五课 kettle 映射 (子转换)01

    1.kettle 里面的映射和java代码里面的封装是一个概念,就是将一个可复用的模块单独抽离为公共模块供其他模块引用,用到的步骤或者组件如下 2.构建子映射,子映射需要用到映射输入规范和映射输出规范 ...

  7. linux系统下,jdk的安装和配置教程,以jdk-8u311为例

    1.官方下载 下载地址:https://www.oracle.com/ 本文以jdk8为例, 1)下载地址:https://www.oracle.com/java/technologies/downl ...

  8. C++面向对象语言自制多级菜单

    因为要做一个小应用,需要一个菜单类,在网上找了许久,也没有找到一款心仪的菜单类,索性用C++语言,自制一个命令行级别的菜单类,并制作成库,现记录下来,供以后借鉴. 一.特性 无限制条目 无限制层级 用 ...

  9. Spring扩展——BeanFactoryPostProcessor(BFPP)

    引言 在Spring中BeanFactoryPostProcessor(后面使用简写BFPP),作为容器启动过程的对容器进行修改操作的Bean对象,是Spring框架对外提供的核心扩展点之一,Spri ...

  10. # android studio启动虚拟机长时间无响应,无法启动

    问题 虚拟设备长时间不响应,无法启动设备 方案 根据 android studio启动虚拟器失败 尝试删除锁文件 失败,.android 目录下不存在锁文件 电脑内存或计算配置不足 查看了模拟器需要的 ...