博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)A,B,C
阅读量:5225 次
发布时间:2019-06-14

本文共 1743 字,大约阅读时间需要 5 分钟。

A:链接:http://codeforces.com/contest/831/problem/A

解题思路:

从前往后分别统计递增,相等,递减序列的长度,如果最后长度和原序列长度相等那么就输出yes;

实现代码:

#include
using namespace std;int main(){ int m,i,ans=1,a[109]; cin>>m; for(i=0;i
>a[i]; } for(i=0;i
a[i+1]) ans++; else break; } //cout<
<

B:链接:http://codeforces.com/contest/831/problem/B

解题思路:

就是求第三个字符串中的字符在第一的序列的位置,输出第二个字符串当前位置的字符

实现代码:

#include
using namespace std;int main(){ string s1,s2,s3; char c; int i,j; cin>>s1; cin>>s2; cin>>s3; int len = s3.size(); for(i=0;i
='A'&&s3[i]<='Z'){ c = tolower(s3[i]); for(j=0;j
='a'&&s3[i]<='z'){ for(j=0;j

C:链接:http://codeforces.com/contest/831/problem/C

解题思路:

a[]表示评委给的分,b[]表示某个状态的分数

先前缀和处理一下a[i],由于初始分数可能由最小的b[]加上某一个a[i]表示,所以先设存在一个初值=b[1]-a[i],依次判断,如果这个初值能满足加上任意评委给的分,都能得到某状态的分数:x+a[i]=b[j] 可转化为: a[i] = b[j] - x;能满足的初值,存进集合里,最后输出数量即可

#include
using namespace std;set
st;int main(){ int m,n,a[2009],b[2009],i,j,temp,flag; cin>>m>>n; memset(a,0,sizeof(a)); for(i=1;i<=m;i++){ cin>>a[i]; a[i] += a[i-1]; } sort(a+1,a+m+1); for(i=1;i<=n;i++) cin>>b[i]; sort(b+1,b+1+n); for(i=1;i<=m;i++){ flag = 1;int x = b[1] - a[i]; for(j=1;j <= n;j++){ temp = b[j] - x; int ans = lower_bound(a+i,a+1+m,temp) - a; if(ans>m||a[ans]!=temp){ flag = 0; break; } } if(flag) st.insert(a[i]); } cout<<(int)st.size()<

 

转载于:https://www.cnblogs.com/kls123/p/7190431.html

你可能感兴趣的文章
一题多解 之 Bat
查看>>
Java 内部类
查看>>
{面试题7: 使用两个队列实现一个栈}
查看>>
【练习】使用事务和锁定语句
查看>>
centos7升级firefox的flash插件
查看>>
Apache Common-IO 使用
查看>>
再谈Vmware NAT的配置和路由流程
查看>>
javaScript数组去重方法汇总
查看>>
评价意见整合
查看>>
二、create-react-app自定义配置
查看>>
Android PullToRefreshExpandableListView的点击事件
查看>>
系统的横向结构(AOP)
查看>>
linux常用命令
查看>>
NHibernate.3.0.Cookbook第四章第6节的翻译
查看>>
例1-1
查看>>
马达调速器,直流马达调速器,直流调速器
查看>>
前端编码规范小记
查看>>
c如何弹出保存路径/保存文件对话框
查看>>
HTML标签二
查看>>
Python 3语法小记(九) 异常 Exception
查看>>