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. yum install oracle-validated

    背景 当时心血来潮要在linux搞oracle,可一顿折腾,大约两个周时间,主要是各种环境的检测麻烦,在redhat上操作也不如centos有利. 命令 yum install oracle-vali ...

  2. Ext需要的文件目录

    使用ext版本信息:ext-4.1.1a <!-- 下面是引入文件需要导入的文件信息 ext-all.css ext-all.js --><link rel="styles ...

  3. HTML中的锚点设置和table格式

    锚点设置: <a href="#1">锚点</a> <a name="1"></a> table表格格式: &l ...

  4. STM32学习及应用笔记二:一次运算符优先级造成的错误

    本人在最近一个项目的开发中,出现一个应为疏忽运算符优先级造成的问题,检查了很久才发现问题,所以觉得运算符的优先级问题还是有必要再研究一下.具体的问题是这样的,我采集了传感器的原始数据,然后会对数据进行 ...

  5. HTTP 1.1学习笔记

    前言 由于HTTP 1自身的局限性,它不能很好的为用户提供性能良好的WEB服务.于1999年6月正式发布了HTTP1.1标准REC2616,它厘清了之前版本中很多有歧义的地方,而且还新增了很多重要的优 ...

  6. jvm字节占用空间分析

    一个对象实例占用了多少字节,消耗了多少内存?这样的问题在c或c++里使用sizeof()方法就可以得到明确答案,在java里好像没有这样的方法(java一样可以实现),不过通过jmap工具倒是可以查看 ...

  7. python+selenium五:多窗口切换与获取句柄

    from selenium import webdriverfrom selenium.webdriver.common.by import Byimport time driver = webdri ...

  8. 有关cookie

    cookie     会话跟踪技术               <script>             /*                 cookie 全称  会话跟踪技术.     ...

  9. linux命令: chown命令

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...

  10. python 全栈开发,Day69(Django的视图层,Django的模板层)

    昨日内容回顾 相关命令: 1 创建项目 django-admin startproject 项目名称 2 创建应用 python manage.py startapp app名称 3 启动项目 pyt ...