今天这场比赛把人心态考崩溃了,只考100分钟,四道思考和算法题,旁边大佬开局5分钟秒T1,我30分钟打了个T1暴力。┭┮﹏┭┮,呜呜~。T2,T4根据题意暴力。T3人手模拟了一下,完全没有任何思路,放弃。(好在没有犯低级错误)。

T1 A

最大公约数

被第一题切掉了,考场上先现推 gcd,然后手打 gcd,记得c++有个函数(但没记起来)是 __gcd(),没有正解思路,旁边大佬已经切了,我灵光一线——DP,然而写出来样例一测,假的,这道题无法动规,子问题会影响后续答案,于是。。。。暴力喜提50分。

暴力思路:依次计算删掉每一个数的最大公约数,时间复杂度 \(O(n^2)\)。

然而正解其实也是这个思路,预先处理 gcd 的前缀和和后缀和,然后枚举删掉每一个数。

AC代码:

#include<bits/stdc++.h>
using namespace std;
#define N 200000
int n,a[N],q[N],h[N],ans=0;
int gcd(int a,int b){
if(b>a) swap(a,b);
if(b==0) return a;
else return gcd(b,a%b);
}
int main(){
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++){
q[i]=gcd(q[i-1],a[i]);
}
for(int i=n;i>=1;i--){
h[i]=gcd(h[i+1],a[i]);
}
for(int i=1;i<=n;i++){
ans=max(ans,gcd(q[i-1],h[i+1]));
}
printf("%d",ans);
return 0;
}

T2 B

排序

这道题思想确实很妙,开始没有想到。

考虑到正解,每一个数 i 最后都将移动到位置 i,所以我们暴力将每一个数移到正确位置,因为每一个数必须移到正确位置,交换方法是唯一的,所以这就是最优解。

AC代码:

#include <bits/stdc++.h>
using namespace std;
const int N=2e5+5;
vector<int> v;
bool usd[N];
int n,a[N],ip[N];
signed main(){
freopen("b.in","r",stdin);
freopen("b.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]),ip[a[i]]=i;
for(int i=1;i<=n;i++){
if(ip[i]==i)continue;
while(ip[i]!=i){
if(usd[ip[i]-1]){
cout<<"-1\n";
return 0;
}
usd[ip[i]-1]=true;
v.push_back(ip[i]-1);
ip[i]--;
int l=a[ip[i]];
ip[l]++;
swap(a[ip[i]],a[ip[l]]);
}
}
if(v.size()!=n-1)cout<<"-1\n";
else for(auto i:v)cout<<i<<"\n";
}

T3 C

不会,真不会

T4 D

排序

还是不会,真不会,

直接上代码:

#include <cstdio>
int main() {
freopen("d.in","r",stdin);
freopen("d.out","w",stdout);
int n;
scanf("%d", &n);
printf("%d\n", n * n);
for (int i = n - 1; i>=0; --i) {
for (int j = 0; j < n; ++j) {
printf("%d\n", i);
}
}
}

刚刚去跟同学讲了一下这道题,自己又增添了不少理解,现在应该是完全理解了吧??

思想有点多,这里直接复制了,题解来源

首先你用脑子想一下,你就会知道,如果一直盯着一个位置换,那他最后会换成0 。因为位置固定,你要交换另一个位置所需要的值也是固定的,而他被换走了,就再也换不到了。

然后你在0的前面一直操作,他最后也会变成0,而且他一定会在变成1后变成0,因为要和后一位交换。

于是你从前往后一直这样操作,最后就可以将0和1换到最前面,而且在换第0位的时候,如果你的值是 x,那他一定会被换到第 x 位。所以后面也是有序的。

然后你就做完了。

SXYZ-7.4训练赛的更多相关文章

  1. 10.0.0.55_12-16训练赛部分writeup

    0x1 - MISC MISC100 一张帅行的照片 目测是图片隐写,但是binwalk并没有出来,应该是对文件头进行了修改 010editor查看一下,发现在jpg文件尾之后还有大量的数据 而且在灰 ...

  2. Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)

    Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...

  3. Contest1585 - 2018-2019赛季多校联合新生训练赛第一场(部分题解)

    Contest1585 - 2018-2019赛季多校联合新生训练赛第一场 C 10187 查找特定的合数 D 10188 传话游戏 H 10192 扫雷游戏 C 传送门 题干: 题目描述 自然数中除 ...

  4. 7.30 正睿暑期集训营 A班训练赛

    目录 2018.7.30 正睿暑期集训营 A班训练赛 T1 A.蔡老板分果子(Hash) T2 B.蔡老板送外卖(并查集 最小生成树) T3 C.蔡老板学数学(DP NTT) 考试代码 T2 T3 2 ...

  5. HDU6578 2019HDU多校训练赛第一场 1001 (dp)

    HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...

  6. HDU6579 2019HDU多校训练赛第一场1002 (线性基)

    HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...

  7. 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-I.html 题目传送门 - 2018牛客多校赛第三场 I ...

  8. 2018牛客网暑假ACM多校训练赛(第三场)G Coloring Tree 计数,bfs

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-G.html 题目传送门 - 2018牛客多校赛第三场 G ...

  9. 2018牛客网暑假ACM多校训练赛(第三场)D Encrypted String Matching 多项式 FFT

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-D.html 题目传送门 - 2018牛客多校赛第三场 D ...

  10. 2018牛客网暑假ACM多校训练赛(第二场)E tree 动态规划

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round2-E.html 题目传送门 - 2018牛客多校赛第二场 E ...

随机推荐

  1. CF1951

    A link 这个题就是讨论. 首先,如果没有\(1\)就一定可以. 如果有\(1\). 如果长度为\(2\)一定不行. \(1\)的个数为奇数不行. 如果为偶数 有一个小点:如果是\(2\)个\(1 ...

  2. 一文全解:LVM(逻辑卷管理器)

    前两篇文章已经讲了关于磁盘分区和磁盘阵列的相关内容: 一文全懂:Linux磁盘分区 一文全懂:独立冗余磁盘阵列(RAID) 但是磁盘分区完后再想扩容或者缩容就比较麻烦了,甚至很多时候不能扩容或者缩容, ...

  3. Kmesh v0.4发布!迈向大规模 Sidecarless 服务网格

    本文分享自华为云社区<Kmesh v0.4发布!迈向大规模 Sidecarless 服务网格>,作者: 云容器大未来. 近日 Kmesh 发布了 v0.4.0 版本,感谢社区的贡献者在两个 ...

  4. Jmeter函数助手34-digest

    digest函数用于返回特定哈希算法的加密值. 算法摘要:填入算法,如MD2.MD5.SHA-1.SHA-224.SHA-256.SHA-384.SHA-512 String to be hashed ...

  5. 【Scala】07 集合

    分三大类: 序列 Seq 集 Set 映射 Map 所有集合类型都扩展自Iterable特质(可迭代的) 所有集合类型都提供[可变]和[不可变]的版本 归纳在下面两个包中 scala.collecti ...

  6. 【Vue】Re07 插槽Slot

    一.插槽基本使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  7. Ubuntu18.04安装终端文件管理器ranger

    linux环境下终端的文件管理器ranger的安装: github下载地址: https://github.com/ranger/ranger 安装: pip install ranger-fm 启动 ...

  8. Centos7安装mysql8.0教程

    1.背景 centos7安装mysql8.0 2.安装步骤 步骤一:安装准备工作 1.查看是否有安装过mysql rpm -qa | grep -i mysql 2.删除mysql yum -y re ...

  9. vue-表单与v-model

    使用 v-model 后,表羊控件显示的值只依赖所绑定的数据,不再关心初始化时的 value 属性,对于 textarea></textarea> 之间插入的值,也不会生效. 使用 ...

  10. vscode注释快捷键

    单行注释 ctrl+/ 多行注释 ctrl+alt+a 文档注释 /** 复制上面一行 ctrl+d 选中段落整体向左或向右缩进 ctrl +[ 或 ctrl + ] 查找 ctrl + f