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. Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试

    由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...

  2. 转载:Linux操作系统(1.3.1)《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19611.html 1.3 准备工作 由于Linux具有免费.使用广泛.商业支持越来越完善等特点,本书将主要针对Linux上运行的Ng ...

  3. X-Forwarded-For 的一些理解

    X-Forwarded-For 是一个 HTTP 扩展头部, 主要是为了让 Web 服务器获取访问用户的真实 IP 地址(其实这个真实未必是真实的,后面会说到). 那为什么 Web 服务器只有通过 X ...

  4. Unicode范围预览

    链接: https://www.zhangxinxu.com/study/201611/show-character-by-charcode.php?range=4E00-9FBB 备注: Unico ...

  5. (无)webservice执行过程深入理解

    前面我们搞了1,2个DEMO,基本对webservice服务发布,调用 ,执行 有一定的了解. 今天的话,我们再系统的梳理下webservice执行过程. 首先我们在webservice服务器端开发w ...

  6. python接口自动化测试十一:传参数:data与json

    # 传json参数 import requests url = 'xxxxxxxx' body = {     'xxx': 'xxx',     'xxx': 'xxx' } # body是json ...

  7. python 全栈开发,Day64(视图,触发器,函数,存储过程,事务)

    昨日内容回顾 pymysql:属于python的一个模块 pip3 install pymysql conn = pymysql.connect(...,charset = 'uft8') 创建游标 ...

  8. webservice之restlet实现

    转自LifeBa,http://www.lifeba.org/arch/restlet_develop_application_component_2.html但有改动,主要改动有:1. 修改了web ...

  9. 《JavaScript 高级程序设计》第三章:基本概念

    目录 语法 标识符 严格模式 关键字 保留字 变量 数据类型 运算符 表达式与语句 语法 "语法"指的是一门语言的书写风格,JavaScript 的语法风格很类似于 C 以及 Ja ...

  10. Android Studio之导出JavaDoc出现编码GBK的不可映射字符

    使用Android Studio导出JavaDoc时,如果在注释中添加了中文,生成时的时候会出现错误: 编码GBK的不可映射字符. 解决的办法是在Other command line argument ...