写在前面

来到夏令营的第一场比赛,全是水题(第一题除外,不过是原题还是之前做过的,而且是并查集的果题,咕咕咕)

A

链接

点这里

思路

我就不写了,去看luogu题解吧,传送门

代码

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=4e5;
struct data
{
int nxt,to;
}e[maxn<<1];
int head[maxn],tot;
void add(int u,int v)
{
e[++tot]=(data){head[u],v};
head[u]=tot;
}
int f[maxn],n,m,v[maxn],k,a[maxn],cnt,ans[maxn];
int find(int x)
{
return x==f[x]?x:f[x]=find(f[x]);
}
void dfs(int x)
{
v[x]=1;
for (int i=head[x];i;i=e[i].nxt)
{
if (!v[e[i].to])
{
int f1=find(x),f2=find(e[i].to);
if (f1!=f2) f[f1]=f2;
dfs(e[i].to);
}
}
}
int main()
{
scanf("%d%d",&n,&m);
for (int i=0;i<n;++i) f[i]=i;
for (int i=0;i<m;++i)
{
int u,v;
scanf("%d%d",&u,&v);
add(u,v); add(v,u);
}
scanf("%d",&k);
for (int i=0;i<k;++i) scanf("%d",&a[i]),v[a[i]]=1;
for (int i=0;i<n;++i)
{
if (!v[i])
{
cnt++;
dfs(i);
}
}
ans[k]=cnt;
memset(v,0,sizeof(v));
for (int i=0;i<k;++i) v[a[i]]=1;
for (int i=k-1;i>=0;--i)
{
v[a[i]]=0;
cnt++;
for (int j=head[a[i]];j;j=e[j].nxt)
{
if (!v[e[j].to])
{
int f1=find(a[i]),f2=find(e[j].to);
if (f1!=f2)
{
f[f2]=f1;
cnt--;
}
}
}
ans[i]=cnt;
}
for (int i=0;i<=k;++i) printf("%d\n",ans[i]);
return 0;
}

B

链接

点这里

翻译

我们有一串字母\('a'\)和\('b'\)。 我们想对它进行一些操作。 在每一步中,我们在字符串中选择一个子串\(“ab”\),并将其替换为字符串\(“bba”\)。

如果我们没有\(“ab”\)作为子串,我们的工作就完成了。 打印我们应该执行的最小步骤数,以便以\(10 ^ 9 + 7\)模式完成工作。

如果字符串中某个字母'a'后面有一个字母'b',则字符串“ab”显示为子字符串。

思路

我们可以看出来每次把\(ab\)换成\(bba\)相当于把b全部提前把\(a\)放后面,所以只要统计\(b\)的数量在进行累加就行了,注意的是每次累计后b的计数器要乘\(2\)

代码


#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<string>
#include<cstring>
using namespace std;
#define int long long int
inline int read() {
char c = getchar();
int x = 0, f = 1;
while(c < '0' || c > '9') {
if(c == '-') f = -1;
c = getchar();
}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
const int mod=1e9+7;
string p;
int ans=0;
int js;
signed main()
{
cin>>p;
int len=p.length() ;
for(int i=len-1;i>=0;--i)
{
if(p[i]=='b') {js++;js%=mod;}
else {ans+=js%mod;ans%=mod;js=(js*2)%mod;}
}
cout<<ans;
return 0;
}

C

链接

点这里

翻译

思路

首先明确一点

想要\(gcd(省略.....)=1\)就一定要让a数组内全是偶数,所以我们可以从这里下手

下面列举一下可能的情况

操作前---------操作后

奇数,奇数---------偶数,偶数

奇数,偶数---------奇数,奇数

偶数,奇数---------奇数,奇数

偶数,偶数---------偶数,偶数

如果原来两个数都是偶数的话,那么操作数为0.

如果原来两个数都是奇数的话,那么操作数为1.

如果原来两个数是一奇一偶的话,那么操作数为2.

所以就\(ok\)了

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<string>
#include<cstring>
using namespace std;
#define int long long int
inline int read() {
char c = getchar();
int x = 0, f = 1;
while(c < '0' || c > '9') {
if(c == '-') f = -1;
c = getchar();
}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
const int N=300011;
int py_gcd(int x,int y) {
if(y==0) return x;
else return py_gcd(y,x%y);
}
int n;
int a[N];
int p;
int ans;
signed main() {
cin>>n;
for(int i=1; i<=n; ++i) a[i]=read();
int gcds=a[1];
for(int i=2; i<=n; ++i) gcds=py_gcd(gcds,a[i]);
if(gcds>1) {
cout<<"YES"<<'\n'<<0;
return 0;
}
//处理2个奇数的情况
for(int i=1; i<=n; ++i) {
if((a[i]&1) && (a[i+1]&1)) {
ans++;
int tmp;
tmp=a[i];
a[i]=-2*a[i+1];
a[i+1]=2*tmp;
}
}
//一个奇数的一个偶数的情况
for(int i=1; i<=n; ++i) {
if(a[i]&1) ans+=2;
}
cout<<"YES"<<'\n'<<ans;
return 0;
}
// n个数,n<=1e5,操作:把ai,ai+1 替换成 a[i]-a[i+1],a[i]+a[i+1],问gcd(a1,a2..an)>1的最少操作次数.

sdcf day1 qwq比赛题解的更多相关文章

  1. 纪中OJ 2019.02.15【NOIP提高组】模拟 B 组 梦回三国 比赛题解(第一个)

    声明 旁边的同学小 H(胡)对我说: “哟,比赛拿了 140,强!要知道,如果哥第三题 AC 了,哥就 230 了,你个废柴!!!(比赛实际分数 130 额呵)” 顿时,千万草泥马从我心中奔腾而过:你 ...

  2. 贪心(qwq)习题题解

    贪心(qwq)习题题解 SCOI 题解 [ SCOI2016 美味 ] 假设已经确定了前i位,那么答案ans一定属于一个区间. 从高位往低位贪心,每次区间查找是否存在使此位答案为1的值. 比如6位数确 ...

  3. [比赛题解]CWOI2019-1

    [比赛题解]CWOI2019-1 比赛日期:2019.10.12 T1 一道神仙DP题. 我们考虑\(dp[i][j][k]\)表示最后\(i\)位数,\(i-1\)位都是9,最后一位为\(j\),最 ...

  4. 洛谷P2460 [SDOI2007]科比的比赛(题解)(贪心+搜索)

    科比的比赛(题解)(贪心+搜索) 标签:算法--贪心 阅读体验:https://zybuluo.com/Junlier/note/1301158 贪心+搜索 洛谷题目:P2460 [SDOI2007] ...

  5. 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)

    终于打了一场CF,不知道为什么我会去打00:05的CF比赛…… 不管怎么样,这次打的很好!拿到了Div. 2选手中的第一名,成功上紫! 以后还要再接再厉! [A]Check the string 题意 ...

  6. 【codeforces】【比赛题解】#950 CF Round #469 (Div. 2)

    剧毒比赛,至少涨了分对吧.: ( [A]Left-handers, Right-handers and Ambidexters 题意: 有\(l\)个右撇子,\(r\)个左撇子,\(a\)个双手都惯用 ...

  7. 【codeforces】【比赛题解】#931 CF Round #468 (Div. 2)

    因为太迟了,所以没去打. 后面打了Virtual Contest,没想到拿了个rank 3,如果E题更快还能再高,也是没什么想法. [A]Friends Meeting 题意: 在数轴上有两个整点\( ...

  8. 【codeforces】【比赛题解】#937 CF Round #467 (Div. 2)

    没有参加,但是之后几天打了哦,第三场AK的CF比赛. CF大扫荡计划正在稳步进行. [A]Olympiad 题意: 给\(n\)个人颁奖,要满足: 至少有一个人拿奖. 如果得分为\(x\)的有奖,那么 ...

  9. 【codeforces】【比赛题解】#862 CF Round #435 (Div.2)

    这次比赛打得很舒服,莫名得了个Rank41,涨了219的Rating,就比较优秀.不过还是没有闫神厉害啊.题目链接::P. [A]MEX 题意: Evil博士把Mahmoud和Ehab绑架到了邪恶之地 ...

随机推荐

  1. Aspx后台遍历控件

    aspx设计页面 //这个是检测按钮,检测下面的checkbox是否被选中.选中时打印其值 //https://www.cnblogs.com/pwblog/articles/3456385.html ...

  2. ArcGIS Engine中C#开发不能引用ESRI.ArcGIS.AxControls问题

    问题:ArcGIS Engine中C#开发不能引用ESRI.ArcGIS.AxControls问题 解决方法:将这里的特定版本改成“False”即可.

  3. 2019 新华网java面试笔试题 (含面试题解析)

    本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.新华网等公司offer,岗位是Java后端开发,最终选择去了新华网. 面试了很多家公司,感觉大部分公司考察的点都差 ...

  4. javascript中attribute和property的区别详解

    DOM元素的attribute和property很容易混倄在一起,分不清楚,两者是不同的东西,但是两者又联系紧密.很多新手朋友,也包括以前的我,经常会搞不清楚. attribute翻译成中文术语为“特 ...

  5. Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App

    Windows + IIS 环境部署Asp.Net Core App   环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署A ...

  6. 【书评:Oracle查询优化改写】第四章

    [书评:Oracle查询优化改写]第四章 BLOG文档结构图 一.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① check的 ...

  7. weblogic如何修改密码&密码找回

    一.修改Console密码后,挂载的服务无法重启[解决办法] 1. 打开weblogic控制台,安全领域 --> myrealm --> 用户和组,将会看到weblogic用户,可以直接删 ...

  8. docker容器资源配额控制_转

    转自:docker容器资源配额控制 ■ 文/ 天云软件 容器技术团队 docker通过cgroup来控制容器使用的资源配额,包括CPU.内存.磁盘三大方面,基本覆盖了常见的资源配额和使用量控制. cg ...

  9. ElasticSearch(十):Elasticsearch集群配置

    我本地虚拟机配置了两台centos机器,分别安装了elasticsearch6.4.0版本,IP分别为:192.168.56.12, 192.168.56.13 分别修改两个机器上Elasticsea ...

  10. 二级数组省市表(二维数组json)

    <一省份.城市二级联动+vue搭架> a. template部分 <section class="edit__place"> <select v-mo ...