Educational Codeforces Round 25 A,B,C,D
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的更多相关文章
- Educational Codeforces Round 25 E. Minimal Labels&&hdu1258
这两道题都需要用到拓扑排序,所以先介绍一下什么叫做拓扑排序. 这里说一下我是怎么理解的,拓扑排序实在DAG中进行的,根据图中的有向边的方向决定大小关系,具体可以下面的题目中理解其含义 Educatio ...
- 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 ...
- 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 ...
- 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 ...
- Educational Codeforces Round 25
A 题意:给你一个01的字符串,0是个分界点,0把这个字符串分成(0的个数+1)个部分,分别求出这几部分1的个数.例如110011101 输出2031,100输出100,1001输出101 代码: # ...
- 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 ...
- Educational Codeforces Round 25 D - Suitable Replacement(贪心)
题目大意:给你字符串s,和t,字符串s中的'?'可以用字符串t中的字符代替,要求使得最后得到的字符串s(可以将s中的字符位置两两交换,任意位置任意次数)中含有的子串t最多. 解题思路: 因为知道s中的 ...
- [Educational Codeforces Round 16]E. Generate a String
[Educational Codeforces Round 16]E. Generate a String 试题描述 zscoder wants to generate an input file f ...
- Educational Codeforces Round 60 (Rated for Div. 2) 题解
Educational Codeforces Round 60 (Rated for Div. 2) 题目链接:https://codeforces.com/contest/1117 A. Best ...
随机推荐
- java中的SHA单向加密
SHA全名叫做安全散列算法,是FIPS所认证的安全散列算法.能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法.且若输入的消息不同,它们对应到不同字符串的机率很高. package ...
- React-简书视频学习总结
react的基础语法 redux这个数据层框架 react-redux如何方便我们在react中使用redux react-router 4.0 这样的非常实用的相关的第三方模块儿 immutable ...
- 微信小程序 wx.getUserInfo 解密 C# 代码 - 转
public static string DecodeUserInfo(string raw, string signature,string encryptedData, string iv) { ...
- 【转】分布式一致性算法:Raft 算法(Raft 论文翻译)
编者按:这篇文章来自简书的一个位博主Jeffbond,读了好几遍,翻译的质量比较高,原文链接:分布式一致性算法:Raft 算法(Raft 论文翻译),版权一切归原译者. 同时,第6部分的集群成员变更读 ...
- Luogu P2482 [SDOI2010]猪国杀
这道题在模拟界地位不亚于Luogu P4604 [WC2017]挑战在卡常界的地位了吧. 早上到机房开始写,中间因为有模拟赛一直到1点过才正式开始码. 一边膜拜CXR dalao一边写到3点左右,然后 ...
- RHEL7基本命令
Terminal TTY TTY是TeleTYpe的一个老缩写. Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,和古老 ...
- ASP.NET Core使用log4net记录日志
.NET常用的日志组件有NLog.Log4net等,.NET CORE下微软也自带了日志组件,到目前为止还没用过,而我本人常用的是log4net,下面简单讲讲.NET CORE下怎么使用log4net ...
- VS2010、VS2012、VS2013、VS2015、VS2017各版本产品激活秘钥
Visual Studio 2017(VS2017) 企业版 Enterprise 注册码:NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Visual Studio 2017(VS201 ...
- 如何用chrome查看post get及返回的数据
chrome浏览器按下F12打开开发者工具 点击Network,找到过滤器 筛选XHR,Method那一列会显示POST GET:
- M1/M2阶段总结
之前提问的博客 问题解答 问题 1 关于代码复审,复审者是否应该参与编码?如果复审者也参与编码的话,那么难免任务量较多,但如果不参与编码的话,工作分配的似乎不太均衡. 我们的团队项目在M1和M2阶段没 ...