A

注意答案会超过int,考虑分l,r奇数和偶数来考虑即可。

#include<bits/stdc++.h>
using namespace std; long long l,r;
int main(){
while(cin>>l>>r){
if(l%2==1){
l++;
}
if(r%2==1){
r--;
}
if(l>r){
cout<<"0"<<endl;
continue;
}
cout<<(r-l+2)/2<<endl;
}
}

B

如果这个马存活下来,说明前面没有比他跑得快的。

按着坐标排序,记录前缀最大值就好了。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+7;
pair<int,int> P[maxn];
int n;
int main(){
while(scanf("%d",&n)!=EOF){
for(int i=1;i<=n;i++){
scanf("%d%d",&P[i].first,&P[i].second);
}
int Mx = -1;
int Ans = 0;
sort(P+1,P+1+n);
for(int i=1;i<=n;i++){
if(Mx>P[i].second){
continue;
}
Mx = max(P[i].second,Mx);
Ans++;
}
cout<<Ans<<endl;
}
}

C

dp1[i]表示以i结尾的最长上升序列,dp2[i]表示以i开头的最长下降序列。

然后check一下就好了。

#include<bits/stdc++.h>
using namespace std; const int maxn = 1e6+7;
int d1[maxn],d2[maxn],a[maxn],n;
int main(){
while(scanf("%d",&n)!=EOF){
a[0]=1e9;
a[n+1]=1e9;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++){
if(a[i]>a[i-1])d1[i]=d1[i-1]+1;
else d1[i]=0;
}
for(int i=n;i>=1;i--){
if(a[i]>a[i+1])d2[i]=d2[i+1]+1;
else d2[i]=0;
}
int Len = 0;
int ansl=-1,ansr=-1;
for(int i=1;i<=n;i++){
if(d1[i]>0&&d2[i]>0){
if(Len<d1[i]+d2[i]){
ansl=i-d1[i]-1;
ansr=i+d2[i]-1;
Len=d1[i]+d2[i];
}else if(Len==d1[i]+d2[i]){
if(ansl>i-d1[i]-1){
ansl=i-d1[i]-1;
ansr=i+d2[i]-1;
}
}
}
}
cout<<ansl<<" "<<ansr<<endl;
}
}

D

模拟题,做起来比较烦。

理清思路去写就好了,其实只要把这个数据[[][]]过了,基本上就过了。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1005;
string s;
int d[maxn];
int main(){
while(cin>>s){
memset(d,0,sizeof(d));
for(int i=0;i<s.size();i++){
if(s[i]=='[')d[i]++;
else d[i]--;
}
int Mx = 1;
for(int i=1;i<s.size();i++){
d[i]+=d[i-1];
Mx=max(Mx,d[i]);
}
int len=2*Mx-1,len2=0;
int flag = 0;
for(int i=0;i<s.size();i++){
if(s[i]=='['){
int Flag = 0;
if(flag==0){
Flag = 1;
flag = 1;
}else if(flag==1){
len-=2;
len2++;
}
if(len2){
for(int j=0;j<len2-1;j++){
printf(" ");
}
if(Flag==0)
printf("|");
else
printf(" ");
}
printf("+");
for(int j=0;j<len;j++)
printf("-");
printf("+");
if(len2){
if(Flag==0)
printf("|");
}
printf("\n");
}else{
int Flag = 0;
if(i+1<s.size()&&s[i+1]=='['){
Flag = 1;
}
if(flag==1){
flag = 0;
len2++;
if(len2){
for(int j=0;j<len2-1;j++){
printf(" ");
}
printf("|");
}
for(int j=0;j<len;j++)
printf(" ");
printf("|");
printf("\n");
printf("\n");
if(len2){
for(int j=0;j<len2-1;j++){
printf(" ");
}
printf("|");
}
for(int j=0;j<len;j++)
printf(" ");
printf("|");
printf("\n");
len2--;
}else{
len+=2;
len2--;
}
if(len2){
for(int j=0;j<len2-1;j++){
printf(" ");
}
if(Flag==0)
printf("|");
else
printf(" ");
}
printf("+");
for(int j=0;j<len;j++)
printf("-");
printf("+");
if(len2){
if(Flag==0)
printf("|");
}
printf("\n");
}
}
}
return 0;
}

E

简单博弈论。

相当于在nn的矩阵里铺21的地砖.

所以胜利的结果显然跟n的奇偶有关.

#include<bits/stdc++.h>
using namespace std; int main(){
long long n;
while(cin>>n){
if(n%2==0){
cout<<"XiaoMing"<<endl;
}else{
cout<<"XiaoHong"<<endl;
}
}
}

喵哈哈村的魔法考试 Round #12 (Div.2) 题解的更多相关文章

  1. 喵哈哈村的魔法考试 Round #2 (Div.2) 题解

    喵哈哈村的魔法考试 Round #2 (Div.2) 题解 A.喵哈哈村的战争 题解: 这道题就是for一遍,统计每个村子的战斗力的和,然后统计哪个村子的战斗力和大一点就好了. 唯一的坑点,就是这道题 ...

  2. 喵哈哈村的魔法考试 Round #1 (Div.2) 题解

    喵哈哈村的魔法考试 Round #1 (Div.2) 题解 特别感谢出题人,qscqesze. 也特别感谢测题人Xiper和CS_LYJ1997. 没有他们的付出,就不会有这场比赛. A 喵哈哈村的魔 ...

  3. 喵哈哈村的魔法考试 Round #7 (Div.2) 题解

    喵哈哈村的魔法考试 Round #7 (Div.2) 注意!后四道题来自于周日的hihocoder offer收割赛第九场. 我建了个群:欢迎加入qscoj交流群,群号码:540667432 大概作为 ...

  4. 喵哈哈村的魔法考试 Round #1 (Div.2) 题解&源码(A.水+暴力,B.dp+栈)

    A.喵哈哈村的魔法石 发布时间: 2017年2月21日 20:05   最后更新: 2017年2月21日 20:06   时间限制: 1000ms   内存限制: 128M 描述 传说喵哈哈村有三种神 ...

  5. 喵哈哈村的魔法考试 Round #19 (Div.2) 题解

    题解: 喵哈哈村的魔力源泉(1) 题解:签到题. 代码: #include<bits/stdc++.h> using namespace std; int main(){ long lon ...

  6. 喵哈哈村的魔法考试 Round #14 (Div.2) 题解

    喵哈哈村的四月半活动(一) 题解: 唯一的case,就是两边长度一样的时候,第三边只有一种情况. #include <iostream> #include <cstdio> # ...

  7. 喵哈哈村的魔法考试 Round #10 (Div.2) 题解

    喵哈哈村与哗啦啦村的大战(一) 最大值就是全部+3,最小值就是全部-3,注意不能降为负数. #include<bits/stdc++.h> using namespace std; con ...

  8. 喵哈哈村的魔法考试 Round #8 (Div.2) 题解

    喵哈哈村的美食面馆 签到题,就不停的if就好了. #include<bits/stdc++.h> using namespace std; string name[5]={"ni ...

  9. 喵哈哈村的魔法考试 Round #4 (Div.2) 题解

    有任何疑问,可以加我QQ:475517977进行讨论. A 喵哈哈村的嘟嘟熊魔法(1) 题解 这道题我们只要倒着来做就可以了,因为交换杯子是可逆的,我们倒着去模拟一遍就好了. 有个函数叫做swap(a ...

随机推荐

  1. CentOS 6.5环境使用ansible剧本自动化部署Corosync + pacemaker环境及corosync常用配置详解

    环境说明: 192.168.8.39 node2.chinasoft.com 192.168.8.42 node4.chinasoft.com 192.168.8.40 ansible管理服务器 19 ...

  2. Java 开发环境配置--eclipse工具进行java开发

    Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Java Cloud Studio ...

  3. opencv error: insufficient memory错误解决办法

    用opencv合成图像时出现的错误,大概4000多张会报错,在网上查阅一些博客时才知道原因.之前编译的时候用的是x86,切换到x64下可解决问题,具体: 1.项目->属性->配置管理器-& ...

  4. bootstrap 全局样式设置

    HTML <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" co ...

  5. LINQ学习之旅(二)

    一:查询表达式(LINQ)简介 LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译 ...

  6. JAVA代码设置selector不同状态下的背景

    Selector设置button点击效果(详细)以及常见问题https://www.jianshu.com/p/a0ddba6d7969 Android 代码动态设置TextView的背景.颜色Sel ...

  7. hdu 1548 升降梯

    题目大意:有一个升降机,它有两个按钮UP和DOWN,给你一些数i表示层数,并且每层对应的Ki,如果按UP按钮,会从第i层升到第i+Ki层:如果按了DOWN则会从第i层降到第i-Ki层:并规定能到的层数 ...

  8. Ubuntu安装VirtualBox以及CentOS7.5联网设置

    一.virtualBox的安装 官方Liunx版本下载地址:  https://www.virtualbox.org/wiki/Linux_Downloads 这里选择下载ubuntu 16.04  ...

  9. asp.net core服务的生命周期

    Transient:每一次GetService都会创建一个新的实例 Scoped:在同一个Scope内只初始化一个实例 ,可以理解为( 每一个request级别只创建一个实例,同一个http requ ...

  10. Github+阿超运算

    感谢自己寒假能够稍稍做一点努力. Github个人页面<构建之法阅读笔记二可见>: https://github.com/Heartxy8990 申请教程: http://jingyan. ...