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

解题思路:

一开始以为是个进制转换后面发现是我想多了,就是统计有多少个1然后碰到0输出就行,没看清题意。。

实现代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
int m,i,ans=;
string s;
cin>>m;
cin>>s;
for(i=;i<m;i++){
if(s[i]=='')
ans++;
if(s[i]==''||i==m-){
cout<<ans;
ans=;}
}
if(s[m-]=='')
cout<<"";
cout<<endl;
return ;
}

B.Five-In-a-Row

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

解题思路:

就是五子棋,问你能否在空白处填充一个x使其成五子,把字符转换为数字,如果要只差一步成五子,只能是四个‘x’和一个‘.’分别赋值,然后暴力遍历就可以了;

实现代码:

#include<bits/stdc++.h>
using namespace std;
char mp[][];
int id[][];
int main()
{
int i,j,k,ans1,ans2,ans3,ans4,ans,ans5;
memset(id,,sizeof(id));
for(i=;i<=;i++){
for(j=;j<=;j++){
cin>>mp[i][j];
if(mp[i][j]=='X')
id[i][j] = ;
if(mp[i][j]=='O')
id[i][j] = -;
if(mp[i][j]=='.')
id[i][j] = ;
}
}
for(i=;i<=;i++){
for(j=;j<=;j++){
if(id[i][j]==||id[i][j]==){
ans1 = ;ans2=;ans3=;ans4=,ans5=;
for(k=;k<;k++){
if(j<=)
ans1+=id[i][j+k];
if(i<=)
ans2+=id[i+k][j];
if(j<=&&i<=)
ans3+=id[i+k][j+k];
if(i>=&&j>=)
ans4+=id[i-k][j-k];
if(i>=&&j<=)
ans5+=id[i-k][j+k];
}
ans = max(ans1,max(ans2,max(ans3,max(ans4,ans5))));
//cout<<ans<<endl;
if(ans==){
cout<<"YES"<<endl;
return ;
}
}
}
}
cout<<"NO"<<endl;
return ;
}

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

解题思路:

题目意思有些难懂,要求解决困难,已经解决了k难度的问题,如果待解决的问题ai小于k*2的话可以直接解决,反之需要先达到ai/2,也就是将k不断翻倍直到k*2>=ai.才能解决该问题。而此时已经解决的最大难度为max(k,ai).不断推就行了。看懂题了就很简单了。

实现代码:

#include<bits/stdc++.h>
using namespace std; int main()
{
int n,k,i,maxx = -,a[],ans=;
cin>>n>>k;
for(i=;i<n;i++){
cin>>a[i];
}
sort(a,a+n);
for(i=;i<n;i++){
cout<<k<<" "<<a[i]<<endl;
while(k*<a[i]){
k*=;
ans++;
}
k = max(a[i],k);
}
cout<<ans<<endl;
return ;
}

D.Suitable Replacement

链接:http://codeforces.com/contest/825/problem/D

解题思路:

题目要通过改变?号来求出最大适合性的字符串,那么可以先将'?'的下标存进vector数组里,然后用map记录下确定的值;要使两个字符串最匹配,直接遍历第二个字符串如果其中有和第一个字符串相同的字符,map数组减一下,如果没有相同的,为使匹配度最大直接将'?'改成当前字符就行了。

实现代码:

#include<bits/stdc++.h>
using namespace std;
map<char,int>mp;
vector<int>v;
int main()
{
ios::sync_with_stdio(false);
cin.tie();
string s1,s2;
int i;
cin>>s1;
cin>>s2;
for(i=;i<s1.size();i++){
if(s1[i]=='?')
v.push_back(i);
else
mp[s1[i]]++;
}
while(!v.empty()){
for(i=;i<s2.size();i++){
if(mp[s2[i]])
mp[s2[i]]--;
else{
s1[v.back()] = s2[i];
//cout<<s2[i]<<endl;
v.pop_back();
if(v.empty())
break;
}
}
}
cout<<s1<<endl;
return ;
}

ps: D还在等判题,突然被室友拉去打了把lol,打完感觉自己忘了什么,然后没多想直接写题解。。贴代码。。欣赏了一下,打开cf发现re了,发现应该是忘了加个break操作访问越界了,加完过了那组数据然后疯狂wa一组大的数据过不去,心态爆炸,找了一个小时的错误,最后发现把vector数组的数据定义错了,明明是int型,偏偏打成了char型,就这样还过了6个样例,是真的骚,不过最骚的还是自己脑子抽了题写错了还写解题思路写的贼起劲,我果然是个脑残。。。。

Educational Codeforces Round 25 A,B,C,D的更多相关文章

  1. Educational Codeforces Round 25 E. Minimal Labels&&hdu1258

    这两道题都需要用到拓扑排序,所以先介绍一下什么叫做拓扑排序. 这里说一下我是怎么理解的,拓扑排序实在DAG中进行的,根据图中的有向边的方向决定大小关系,具体可以下面的题目中理解其含义 Educatio ...

  2. Educational Codeforces Round 25 Five-In-a-Row(DFS)

    题目网址:http://codeforces.com/contest/825/problem/B 题目:   Alice and Bob play 5-in-a-row game. They have ...

  3. Educational Codeforces Round 25 C. Multi-judge Solving

    题目链接:http://codeforces.com/contest/825/problem/C C. Multi-judge Solving time limit per test 1 second ...

  4. Educational Codeforces Round 25 B. Five-In-a-Row

    题目链接:http://codeforces.com/contest/825/problem/B B. Five-In-a-Row time limit per test 1 second memor ...

  5. Educational Codeforces Round 25

    A 题意:给你一个01的字符串,0是个分界点,0把这个字符串分成(0的个数+1)个部分,分别求出这几部分1的个数.例如110011101 输出2031,100输出100,1001输出101 代码: # ...

  6. Educational Codeforces Round 25 E. Minimal Labels 拓扑排序+逆向建图

    E. Minimal Labels time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  7. Educational Codeforces Round 25 D - Suitable Replacement(贪心)

    题目大意:给你字符串s,和t,字符串s中的'?'可以用字符串t中的字符代替,要求使得最后得到的字符串s(可以将s中的字符位置两两交换,任意位置任意次数)中含有的子串t最多. 解题思路: 因为知道s中的 ...

  8. [Educational Codeforces Round 16]E. Generate a String

    [Educational Codeforces Round 16]E. Generate a String 试题描述 zscoder wants to generate an input file f ...

  9. Educational Codeforces Round 60 (Rated for Div. 2) 题解

    Educational Codeforces Round 60 (Rated for Div. 2) 题目链接:https://codeforces.com/contest/1117 A. Best ...

随机推荐

  1. [02] URL和HttpURLConnection类

    1.URL的概念 统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址. URL的基本格式是: <METHOD&g ...

  2. EF Core中DbContext可以被Dispose多次

    我们知道,在EF Core中DbContext用完后要记得调用Dispose方法释放资源.但是其实DbContext可以多次调用Dispose方法,虽然只有第一次Dispose会起作用,但是DbCon ...

  3. CF700E Cool Slogans SAM、线段树合并、树形DP

    传送门 在最优的情况下,序列\(s_1,s_2,...,s_k\)中,\(s_i (i \in [2 , k])\)一定会是\(s_{i-1}\)的一个\(border\),即\(s_i\)同时是\( ...

  4. 《Head First 设计模式》例子的C++实现(5 单例模式)

    最近在学习设计模式,用的是 <Head First 设计模式>这本书.感觉这本书写的还是很不错的,深入浅出的介绍了各种常用的设计模式.唯一有点不方便的地方是这本书的例子全都是用的 Java ...

  5. 基于HTML5 Canvas WebGL制作分离摩托车

    工业方面制作图表,制作模型方面运用到 3d 模型是非常多的,在一个大的环境中,构建无数个相同的或者不同的模型,构建起来对于程序员来说也是一件相当头疼的事情,我们利用 HT 帮大家解决了很大的难题,无数 ...

  6. 从Stampery到Chronicled,区块链公证业务的实践

    Stampery就是这样一家利用比特币区块链技术代替公证人的创业公司,能为所有的敏感文件提供具有法律约束力的证明.可以用Stampery证明任何文件,它能很好地保护知识产权,证明遗嘱.宣誓.合同.家庭 ...

  7. Ansible之playbook的使用总结 - 运维笔记

    之前详细介绍了Ansible的安装, 配置, 以及Ansible常用模块的使用. 下面对Ansible的playbook用法做一小结. 为什么引入playbook?一般运维人员完成一个任务, 比如安装 ...

  8. Python_命名空间和作用域_25

    # 函数进阶 a = def func(): print(a) func() # 命名空间和作用域 # print() # input() # list # #命名空间 有三种 #内置命名空间 —— ...

  9. android计算器

    一:引言    目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了.手机上的软件也随 ...

  10. Analyze a docker instance start failure

      错误信息:Cannot start container xxxxxxxxxxx | Error getting container xxxxxxxxxxxxxxx  from driver dev ...