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. ADO.NET分享

    看到<c#从入门到精通(第三版)>书中对ado.net里几种方法打的比方,很有意思就发一下. 1)这张图中,把数据比作水,储存了大量数据. 2)Connection对象好像进水龙头,插在水 ...

  2. ajax获取的数据如何渲染到dom元素上

    1.常见的字符串拼接 (对于动态创建的元素添加js时,使用事件委托,利用事件冒泡的原理,把事件添加到父级元素上,触发执行效果) $("ul").on('click','li',fu ...

  3. Luogu P3768 简单的数学题

    非常恶心的一道数学题,推式子推到吐血. 光是\(\gcd\)求和我还是会的,但是多了个\(ij\)是什么鬼东西. \[\sum_{i=1}^n\sum_{j=1}^nij\gcd(i,j)=\sum_ ...

  4. UWP简单示例(二):快速开始你的3D编程

    准备 IDE:Visual Studio 开源库:GitHub.SharpDx 入门示例:SharpDX_D3D12HelloWorld 为什么选择 SharpDx? SharpDx 库与 UWP 兼 ...

  5. [译]React 在服务端渲染的实现

    原文地址:Server-Side React Rendering 原文作者:Roger Jin React 在服务端渲染的实现 React是最受欢迎的客户端 JavaScript 框架,但你知道吗(可 ...

  6. 本地开发环境搭建(windows)

    一.虚拟器安装 1.概念 ・为什么要搭建搭建模拟环境 在租借服务器前用手中的PC模拟一个服务器的环境,可以打包与团队人员分享 ・什么是Vagrant https://segmentfault.com/ ...

  7. 基于Nginx+Keepalived的LB服务监控(邮件报警)

    IDC两台机器上部署了Nginx+Keepalived主从模式的LB代理负载层,现在需要对LB进行每日巡检和服务监控,利用SendEmail邮件监控. 0)SendEmail部署 参考:http:// ...

  8. centos6.8下LNMP (nginx1.8.0+php5.6.10+mysql5.6.12) - 部署手册

    在平时运维工作中,经常需要用到LNMP应用框架.以下对LNMP环境部署记录下: 1)前期准备:为了安装顺利,建议先使用yum安装依赖库[root@opd ~]#yum install -y make ...

  9. FormData

    1. 概述FormData类型其实是在XMLHttpRequest 2级定义的,它是为序列化表以及创建与表单格式相同的数据(当然是用于XHR传输)提供便利. 2. 构造函数创建一个formData对象 ...

  10. ecna2017-Sheba’s Amoebas

    很简单的深搜的一道题,由于这道题要找环的个数,并且认为相连当一个点的8个方向种中有一个方向和这个点相连. 这个题做法无非就是暴力每个点,然后满足条件的深搜即可. 感觉我自己的代码写的很无趣,大佬的代码 ...