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. 如何屏蔽在Skyline的TerraExplorer中加载Shape或者KML等数据时的缓冲提示信息

    在使用TerraExplorer软件或者二次开发自定义打开FLY工程时,以及在已有的FLY工程中导入其他矢量数据,如SHP.WFS图层.KML图层时,总会看到类似下图的提示信息: 有些用户问,如何能屏 ...

  2. WIFI底座

    自己贴片的51+WIFI的开发板终于到了..还是贴片的好看 美中不足的是需要改一个电阻的阻值..还有就是由于自己的8266和51单片机一块断电上电,所以如果用的USB线的质量不好就会出现 下载不了程序 ...

  3. 9-51单片机ESP8266学习-AT指令(单片机采集温湿度数据通过8266发送给AndroidTCP客户端显示)

    http://www.cnblogs.com/yangfengwu/p/8798512.html 补充:今天答应了一个朋友写一下如果单片机发过的是字符串应该怎么解析,答应了今天写,哦哦哦是明天了,闲话 ...

  4. GIT 远程仓库:添加远程库、从远程库克隆

    到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Gi ...

  5. UVA1265 Tour Belt Kruskal重构树、倍增、树上差分

    题目传送门 题意:定义$Tour \, Belt$为某张图上的一个满足以下条件的点集:①点集中至少有$2$个点②任意两点互相连通③图上两个端点都在这个点集中的边的权值的最小值严格大于图上只有一个端点在 ...

  6. 读取Excel的记录并导入SQL数据库

    准备一下,近段时间,需要把Excel的数据导入数据库中. 引用命名空间: using System.Configuration; using System.Data; using System.Dat ...

  7. JXOI2018简要题解

    JXOI2018简要题解 T1 排序问题 题意 九条可怜是一个热爱思考的女孩子. 九条可怜最近正在研究各种排序的性质,她发现了一种很有趣的排序方法: Gobo sort ! Gobo sort 的算法 ...

  8. Jlink使用技巧之烧写SPI Flash存储芯片

    前言 大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPI Flash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPI Flash存储器, ...

  9. Centos7部署elasticsearch并且安装ik分词以及插件kibana

    第一步 下载对应的安装包 elasticsearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch ik分词下载:https://gith ...

  10. 分布式监控系统Zabbix--完整安装记录 -添加apache监控

    前面介绍了zabbix3.0.3环境及相关监控项的添加,下面介绍下针对apache的监控配置:1)在apache配置文件中打开server-status状态访问功能(自带的) [root@IDC-Ad ...