CF 传送门

T1:Reverse a Substring

只有本身单调不减的字符串不能转换为字典序更小的字符串。否则肯定会出现 \(s_i>s_{i+1}\) 的情况。

所以只要从头到尾扫一遍,找到 \(s_i>s_{i+1}\) 的位置,输出 \(i+1\) 与 \(i+2\) 即可(从 \(0\) 开始)。

Code:

#include<bits/stdc++.h>
using namespace std;
string s;
int n;
int main(){
scanf("%d",&n);
cin>>s;
for(int i=0;i<s.size()-1;i++){
if(s[i]>s[i+1]){
printf("YES\n");
printf("%d %d",i+1,i+2);
return 0;
}
}
printf("NO");
return 0;
}

\(3min\) 速切

T2:Game with Telephone Numbers

洛谷上是蓝题,感觉虚高

首先得知 Vasya 应该删掉靠前的 \(8\),而 Petya应该删掉靠前的但不是 \(8\) 的数字(比如样例1中的 \(3\)),这样才能让剩余的 \(8\) 往前靠。

所以只需要处理前面的 \(s.size()-11+1\) 位即可(虽然只删到 \(s.size()-11\) 为止,但如果剩下第一位刚好是 \(8\) 也可以,如样例1,所以多判一位)。若 \(8\) 比非 \(8\) 多,则 Petya 必胜。

Code:

#include<bits/stdc++.h>
using namespace std;
string s;
int n,cnt;
int main(){
scanf("%d",&n);
cin>>s;
for(int i=0;i<s.size()-10;i++){
if(s[i]=='8') cnt++;
else cnt--;
}
if(cnt>0) printf("YES");
else printf("NO");
return 0;
}

\(12min\) \(AC\)

T3:Alarm Clocks Everywhere

首先容易想到,要使闹钟在 \(x_1,x_2,x_3...x_n\) 分钟都响一次,其时间间隔必须是所有 \(x_i-x_{i-1}\) $(1<i \le n) $ 的公因数。开始时间设为 \(x_1\) 即可。

所以只要先求出所有 \(x_i-x_{i-1}\) $(1<i \le n) $ 的最大公因数,再判断其是否能整除 \(p_i\) 即可。若可以整除,则答案就是 \(x_1\),\(i\)。

注意要开 \(long long\)

Code:

#include<bits/stdc++.h>
using namespace std;
long long n,m,jg,a[300005],p;
int main(){
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
if(i>1){
jg=__gcd(jg,a[i]-a[i-1]);
}
}
for(int i=1;i<=m;i++){
scanf("%lld",&p);
if(jg%p==0){
printf("YES\n");
printf("%lld %d",a[1],i);
return 0;
}
}
printf("NO");
return 0;
}

\(20min\) \(AC\)

T4:Beautiful Array

定义 \(f[0/1/2][i]\) 表示当前在第 \(i\) 位,\(0\) 代表还没用过 \(\times x\),\(1\) 代表正在用 \(\times x\),\(2\) 代表 \(\times x\) 已经用过了。

得出三个转移方程:

  • \(f[0][i]=\max(f[0][i-1]+a[i],\max(a[i],0))\)
  • \(f[1][i]=\max(\max(f[0][i-1],f[1][i-1])+a[i]*x,\max(a[i]*x,0))\)
  • \(f[2][i]=\max(\max(f[0][i-1],\max(f[1][i-1],f[2][i-1]))+a[i],\max(a[i],0))\)

因为每次产生的都可能是最优答案,所以每次处理完 \(ans\) 取 \(\max\) 即可。

注意要开 \(long long\)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,x,f[3][300005],a[300005],tmp,ans;
int main(){
scanf("%lld%lld",&n,&x);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]); tmp=f[0][i-1]+a[i];
f[0][i]=max(tmp,max(a[i],0ll));
ans=max(ans,f[0][i]); tmp=max(f[0][i-1],f[1][i-1])+a[i]*x;
f[1][i]=max(tmp,max(a[i]*x,0ll));
ans=max(ans,f[1][i]); tmp=max(f[0][i-1],max(f[1][i-1],f[2][i-1]))+a[i];
f[2][i]=max(tmp,max(a[i],0ll));
ans=max(ans,f[2][i]);
}
printf("%lld",ans);
return 0;
}

\(1h\) \(03min\) \(AC\) \(qwq\)

T5:Guess the Root

首先可以得知,十次多项式得知十一组 \(i,j\) 就一定可以确定,所以和交互库进行十一次询问,再用高斯消元法求出多项式,最后暴力代入即可。

结果在 \(mod(10^6+3)\) 下,除法就可以改成逆元。

——来自 \(\color{red}{Fido\_Puppy}\) 巨佬的 题解

如果某次交互给出的答案是 \(0\),就可以直接输出。

Code:

#include<bits/stdc++.h>
#define ll long long
#define mod 1000003
using namespace std;
int y;
ll qpow(ll x,int p){
ll ans=1;
while(p) {
if(p&1) ans=ans*x%mod;
x=x*x%mod;
p>>=1;
}
return ans;
};
int main() {
vector< vector <ll> > a(20,vector <ll> (20));
for(int i=1;i<=11;i++){
cout<<"? "<<i-1<<endl;
cin>>y;
if(y==0){
cout<<"! "<<i-1<<endl;
return 0;
}
ll P=1ll;
for(int j=1;j<=11;j++){
a[i][j]=P;
P=P*1ll*(i-1)%mod;
}
a[i][12]=y;
}
for(int i=1;i<=11;i++){
for(int j=i+1;j<=12;j++){
a[i][j]=a[i][j]*qpow(a[i][i],mod-2)%mod;
}
a[i][i]=1ll;
for(int j=1;j<=11;j++){
if(i!=j){
for(int k=i+1;k<=12;k++){
a[j][k]=(a[j][k]-a[j][i]*a[i][k]%mod+mod)%mod;
}
a[j][i]=0;
}
}
}
for(int i=0;i<mod;i++){
ll sum=0,P=1ll;
for(int j=1;j<=11;j++){
sum=(sum+P*a[j][12])%mod;
P=P*1ll*i%mod;
}
if(sum==0){
cout<<"! "<<i<<endl;
return 0;
}
}
cout<<"! -1";
return 0;
}

T6:Delivery Oligopoly

黑题,告辞 \(qwq\)

【Virt.Contest】CF1155(div.2)的更多相关文章

  1. 【Virt.Contest】CF1321(div.2)

    第一次打虚拟赛. CF 传送门 T1:Contest for Robots 统计 \(r[i]=1\) 且 \(b[i]=0\) 的位数 \(t1\) 和 \(r[i]=0\) 且 \(b[i]=1\ ...

  2. 【Virt.Contest】CF1215(div.2)

    第二次打虚拟赛. CF 传送门 T1:Yellow Cards 黄色卡片 中规中矩的 \(T1\). 首先可以算出一个人也不罚下时发出的最多黄牌数: \(sum=a1*(k1-1)+a2*(k2-1) ...

  3. 【小瑕疵】在div里插入img后在底部留有缝隙怎么解决

    [本文转载自http://blog.sina.com.cn/s/blog_9fd5b6df01013mld.html] 图片IMG与容器下边界之间有空隙怎么办?这里介绍3中简单的解决方法. 第一,给图 ...

  4. 【Codeforces Round】 #432 (Div. 2) 题解

    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017)  A. Arpa and a research in Mexi ...

  5. 【Codeforces Round】 #431 (Div. 2) 题解

    Codeforces Round #431 (Div. 2)  A. Odds and Ends time limit per test 1 second memory limit per test ...

  6. 【CSS基础】实现 div 里的内容垂直水平居中

    方案一: 所有内容垂直水平居中 兼容性:IE8+. 条件:内容宽度和高度可以未知,可以是多行文字.图片.div. 描述:使用table-cell + vertical-align , html代码见文 ...

  7. 【java web】--css+div总结

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...

  8. 【网摘】监控 div 的内容变化

    数据是动态加载而来,而当无数据时,提示一下暂无数据.而数据是可以动态在当前页面即时添加的,故在无数据时所做提示,需要隐藏,所以找了这个方法.成功在动态添加数据后,暂无数据的提示没有了. if($(&q ...

  9. 两种隐藏元素方式【display: none】和【visibility: hidden】的区别

    此随笔的灵感来源于上周的一个面试,在谈到隐藏元素的时候,面试官突然问我[display: none]和[visibility: hidden]的区别,我当时一愣,这俩有区别吗,好像有,但是忘记了啊,因 ...

随机推荐

  1. 第九十篇:Vue 具名插槽

    好家伙 1.什么是具名插槽? 来简单理解一下, 具有自己名字的插槽,就是具名插槽 我们来尝试使用一下具名插槽: 在Article.vue组件中: <template> <div cl ...

  2. 高阶 CSS 技巧在复杂动效中的应用

    最近我在 CodePen 上看到了这样一个有意思的动画: 整个动画效果是在一个标签内,借助了 SVG PATH 实现.其核心在于对渐变(Gradient)的究极利用. 完整的代码你可以看看这里 -- ...

  3. 【Elasticsearch】ES选主流程分析

    Raft协议 Raft是分布式系统中的一种共识算法,用于在集群中选举Leader管理集群.Raft协议中有以下角色: Leader(领导者):集群中的领导者,负责管理集群. Candidate(候选者 ...

  4. 数据仓库与hive

    数据仓库与hive hive--数据仓库建模工具之一 一.数据库.数据仓库 1.1 数据库 关系数据库本质上是一个二元关系,说的简单一些,就是一个二维表格,对普通人来说,最简单的理解就是一个Excel ...

  5. haodoop数据压缩

    压缩概述 压缩技术能够有效减少底层存储系统(HDFS)读写字节数.压缩提高了网络宽带和磁盘空间的效率.在运行MR程序时,I/O操作,网络数据传输,Shuffle和Merge要花大量的时间,尤其是数据规 ...

  6. docker bridge 到 k8s pod 跨节点网络通信机制演进

  7. kubeoperator 使用外部mysql

    1.导出 kubeoperator 的数据库 sql 文件,然后导入到外部mysql 2.正常关闭 kubeoperator 3.关闭 kubeoperator 不会影响已经部署的 k8s 集群 4. ...

  8. CentOS7下的lvm(逻辑卷)在线扩容

    扩展前该lvm分区为14GB 关闭系统,给sdb硬盘扩展6GB,然后重新进入CentOS.(或者是原有磁盘还有剩余未使用的空间) 对sdb进行分区: [root@converter ~]# fdisk ...

  9. 域名服务DNSmasq搭建

    假设该服务端主机ip是:192.168.80.100 服务端安装(yum方式) yum install dnsmasq -y # 配置系统文件 # cp /etc/resolv.conf /etc/r ...

  10. 关于aws的ec2实例导出成ova后在vmware中的网络配置不生效的问题

    在aws上的ec2实例,尤其是使用了aws市场中的ami创建的linux系统,默认情况下,网络配置都是通过dhcp自动获取的, 这周笔者将一台ec2实例(redhat/linux 8.3)导出/转换成 ...