首页 > 其他分享 >【Virt.Contest】CF1155(div.2)

【Virt.Contest】CF1155(div.2)

时间:2022-08-29 11:25:47浏览次数:81  
标签:std int Virt printf long max div.2 include CF1155

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

施工中 \(qwq\)

下午学了拉格朗日插值,或者求多项式的高斯消元再来写。

T6:Delivery Oligopoly

黑题,告辞 \(qwq\)

标签:std,int,Virt,printf,long,max,div.2,include,CF1155
From: https://www.cnblogs.com/binary1110011/p/16635261.html

相关文章

  • 在Windows环境下安装虚拟机软件VirtualBox
    在Windows环境下安装虚拟机软件VirtualBoxVirtualBox是一款开源虚拟机软件。VirtualBox是由德国Innotek公司开发,由SunMicrosystems公司出品的软件,使用Qt编写,在Sun......
  • 【Virt.Contest】CF1321(div.2)
    第一次打虚拟赛。CF传送门T1:ContestforRobots统计\(r[i]=1\)且\(b[i]=0\)的位数\(t1\)和\(r[i]=0\)且\(b[i]=1\)的位数\(t2\)。两个数都为\(0\)或都为......
  • 【Virt.Contest】CF1215(div.2)
    第二次打虚拟赛。CF传送门T1:YellowCards黄色卡片中规中矩的\(T1\)。首先可以算出一个人也不罚下时发出的最多黄牌数:\(sum=a1*(k1-1)+a2*(k2-1)\)此时,若\(sum>=n......
  • codeforces round #815 (div.2) B. Interesting Sum
    一开始的想法是n^2时间暴力枚举片段的开头和结尾,但是时间肯定不行。所以干脆想办法缩减时间,用个priority_queue呀,甚至尝试着动态规划。但是很显然无论如何这种东西没法dp,完......
  • centos8 安装 oracle11 报错(Could not create the Java virtual machine)
    centos8安装oracle11报错TherewasanerrortryingtoinitializetheHPIlibrary.Pleasecheckyourinstallation,HotSpotdoesnotworkcorrectlywheninsta......
  • pyinstaller根据虚拟环境virtualenv进行打包,降低exe文件大小
    问题:使用pyinstaller打包后,发现打的exe特别大,有近200M,又没有用几个库,代码也很少,怎么会打出这么大的包呢?分析:在pyinstaller打包的过程中,可以看到窗口中出现了很多本地其他......
  • virtualservice超时重试
    [root@k8s-master09-http-retry]#kubectlapply-f./[root@k8s-master09-http-retry]#catvirtualservice-demoapp.yamlapiVersion:networking.istio.io/v1beta1......
  • virtualservice权重
    应用virtualservice[root@k8s-master06-weight-based-routing]#kubectlapply-fvirtualservice-demoapp.yaml[root@k8s-master06-weight-based-routing]#catvirt......
  • 如何使能512个virtio_blk设备
    一例virtio_blk设备中断占用分析背景:这个是在客户的centos8.4的环境上复现的,dpu是目前很多云服务器上的网卡标配了,在云豹的dpu产品测试中,dpu实现的virtio_blk设备在申请......
  • VirtualBox 找不到桥接网卡问题解决
    1、选择下面驱动2、就可以选择了......