喵哈哈村的灯刀姐妹

链接:http://qscoj.cn/problem/67/

喵哈哈村的灯刀姐妹(一)

发布时间: 2017年4月9日 20:36   最后更新: 2017年4月9日 20:37   时间限制: 1000ms   内存限制: 128M

描述

喵哈哈村中的妖刀姬和青行灯是一对好姐妹,她们俩住在同一个屋檐下。

青行灯是个抖M,所以每天都回家装死,直到刀刀回答上她的问题后,她才会爬起来。

今天,她的问题是:

给你l和r,判断有多少个x满足:

1.x是偶数

2.l<=x<=r

输入

本题包含若干组测试数据。
每行两个整数l,r。
满足0<=l,r<=1e18

输出

输出满足要求的x的个数。

样例输入1 
1 3
1 4
4 1
样例输出1
1
2
0
题解:数学,找规律
#include <bits/stdc++.h>
using namespace std;
const int maxn=2005;
int a[maxn],dp[maxn][maxn];

int main(){
    long long l,r;
    while(cin>>l>>r){
        int tot=0;
        if(r<l) cout<<"0"<<endl;
        else if(r%2&&l%2)cout<<((r-l)/2)<<endl;
        else cout<<((r-l)/2+1)<<endl;
        
    }
    
}

 

 
   

喵哈哈村的灯刀姐妹(二)

 
   

发布时间: 2017年4月9日 20:36   最后更新: 2017年4月9日 20:37   时间限制: 1000ms   内存限制: 128M

 
   
描述

喵哈哈村中的妖刀姬和青行灯是一对好姐妹,她们俩住在同一个屋檐下。

青行灯是个抖M,所以每天都回家装死,直到刀刀回答上她的问题后,她才会爬起来。

今天,她的问题是:

在一个一维坐标轴上,有n个运动员,每个运动员都朝着x轴正方向运动。第i个运动员的位置在x[i],他的速度为y[i],现在如果A超过了B,那么B就会消失。

请问过了很久很久之后,这个坐标轴上最后会剩下多少个运动员呢?

输入

本题包含若干组测试数据。
第一行一个n,表示有n个运动员。
接下来n行,每行两个整数,分别表示x[i]和y[i]。
保证每个人的x[i]不一样。

满足1<=n<=100000,1<=x[i],y[i]<=1e9

输出

输出最后剩下的运动员数量。

样例输入1 
3
1 2
2 3
3 2
样例输出1
2
题解:前缀,先位置排序,只要后方速度更大,前方标记,从前往后找最大速
#include <bits/stdc++.h>
using namespace std;
const int maxn=100005;
int vis[maxn];
struct m{
    int x;int y;
};
m f[maxn];
bool cmp(m a,m b){
    return(a.x<b.x);
}
int main(){
    int n;
    while(cin>>n){
        memset(vis,0,sizeof(vis));
        for(int i=0;i<n;i++)cin>>f[i].x>>f[i].y;
        sort(f,f+n,cmp);
        int M=-1,ans=0; 
        for(int i=0;i<n;i++){
            if(f[i].y<M){
                continue;
            } 
            M=f[i].y;
            ans++;    
            
        }
        cout<<ans<<endl;
    }
    
}
 
   

#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);//pair排序,先按第一维来排,再排第二维
    for(int i=1;i<=n;i++){
        if(Mx>P[i].second){
            continue;
        }
        Mx = max(P[i].second,Mx);
        Ans++;
    }
    cout<<Ans<<endl;
    }
}

喵哈哈村的灯刀姐妹(三)

发布时间: 2017年4月9日 20:36   最后更新: 2017年4月9日 20:37   时间限制: 1000ms   内存限制: 128M

描述

喵哈哈村中的妖刀姬和青行灯是一对好姐妹,她们俩住在同一个屋檐下。

青行灯是个抖M,所以每天都回家装死,直到刀刀回答上她的问题后,她才会爬起来。

今天,她的问题是:

现在给你n个数,现在你需要找到一个最宽的先上升后下降的区间。

前提必须严格上升,严格下降哦。

输入

本题包含若干组测试数据。
第一行一个n,表示数的个数。
第二行n个整数a[i],表示每个数的大小。

满足:1<=n<=1e5,0<=a[i]<=1e9

输出

输出区间的左右下标。
如果有多个最大区间,输出最左边的。

如果找不到输出-1 -1

注意 坐标是从0开始的。

样例输入1  
10
1 3 1 2 5 4 3 1 9 10
样例输出1
2 7
题解:简单dp,前缀,分段考虑
eg: pos:0 1 2 3 4 5 6 7
num:1 2 3 4 5 2 1 3
dp1:1 2 3 4 5 1 1 2
dp2:1 1 1 1 3 2 1 1
 
   
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int a[maxn],dp1[maxn],dp2[maxn];//dp1[i]以i结尾的最长上升子序列 dp2[i] 以i开头的最长下降子序列
int main(){
    int n;
    while(cin>>n){
        for(int i=0;i<n;i++) cin>>a[i];
        for(int i=0;i<n;i++){
            if(a[i]>a[i-1]) dp1[i]=dp1[i-1]+1;
            else dp1[i]=1;
        }
        for(int i=n-1;i>0;i--){
            if(a[i]>a[i+1]) dp2[i]=dp2[i+1]+1;
            else dp2[i]=1;
        }
        int ansl=-1,ansr=-1,Mx=1;
        for(int i=0;i<n;i++){
            if(dp1[i]>1&&dp2[i]>1){
            if(dp1[i]+dp2[i]>Mx){
                Mx=dp1[i]+dp2[i];
                ansl=i-dp1[i]+1;
                ansr=i+dp2[i]-1;
                }    
            }
            
        }
        cout<<ansl<<" "<<ansr<<endl;
    }    
}
 
   

喵哈哈村的灯刀姐妹(五)

发布时间: 2017年4月9日 20:36   最后更新: 2017年4月9日 20:38   时间限制: 1000ms   内存限制: 128M

描述

喵哈哈村中的妖刀姬和青行灯是一对好姐妹,她们俩住在同一个屋檐下。

青行灯是个抖M,所以每天都回家装死,直到刀刀回答上她的问题后,她才会爬起来。

今天,她的问题是:

小明和小红经常玩一个博弈游戏。给定一个n×n的棋盘,一个石头被放在棋盘的左上角。他们轮流移动石头。每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?

输入

本题包含若干组测试数据。
每行一个整数n。

满足 1<=n<=1e18

输出

如果小明胜利输出XiaoMing。
否则输出XiaoHong。

样例输入1 
1
2
样例输出1
XiaoHong
XiaoMing
题解:博弈论,n 为偶,A胜,否则,B胜。方块涂色,以1*2,2*1方块覆盖,看谁先封死
#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;
        }
    }
}
 
   

 

 

转载于:https://www.cnblogs.com/EdSheeran/p/6701127.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 智能照明系统是一种基于现代化技术的智能化照明系统,旨在提高照明效果和能源利用效率。而串口姐妹(proteus)是一款常用的电路仿真软件,可用于模拟和测试各种电子设备。 将智能照明系统与串口姐妹(proteus)链接通常指的是将智能照明系统与电脑上运行的串口姐妹软件进行通讯,以实时监测和控制智能照明系统的运行状态。 在实现这种链接的过程中,首先需要确保智能照明系统具备串口通讯的能力,可以通过串口或USB接口与电脑进行连接。其次,需要在串口姐妹软件上设置相应的串口通讯参数,如波特率、数据位、停止位等,以确保与智能照明系统进行正常的通讯。 通过这种链接方式,我们可以实现以下功能: 1. 监测:通过串口姐妹软件,可以实时获取智能照明系统的各种运行信息,如亮度、色温、电流等,以便对其进行实时监测和分析。 2. 控制:通过串口姐妹软件,可以向智能照明系统发送控制指令,如调节亮度、改变色温等,实现对智能照明系统的远程控制。 3. 数据分析:串口姐妹软件可以将从智能照明系统获取的数据进行保存和分析,以便对照明系统的运行情况进行评估和改进。 总而言之,在智能照明系统和串口姐妹(proteus)的连接过程中,通过串口通讯,我们可以实现对智能照明系统的监测、控制和数据分析等功能,以进一步提升智能照明系统的效率和性能。 ### 回答2: 智能照明串口姐妹是一个由Arduino控制的智能照明系统,可以实现远程控制和自动调光的功能。在Proteus软件中,我们可以模拟并验证整个系统的工作原理。 首先,我们需要将Arduino控制器与智能照明串口姐妹模块进行连接。通过串口通信,Arduino可以向姐妹模块发送控制信号,并接收来自智能照明系统的反馈信息。 在Proteus中,我们可以选择合适的Arduino控制器和串口模块进行仿真。将它们连接起来,并适当设置串口参数,以便与智能照明串口姐妹进行通信。 接下来,我们可以使用Proteus中的元件库来添加智能照明串口姐妹的模块。这些模块包括灯具、光线传感器、温度传感器和人体感应传感器等。 通过将这些模块与Arduino控制器进行连接,可以模拟整个智能照明系统的工作过程。在Proteus中,我们可以编写Arduino代码,并通过串口与智能照明姐妹模块进行通信。通过编写代码,我们可以实现调光、自动控制和远程操作等功能。 完成以上设置后,我们可以运行仿真,在Proteus中模拟整个智能照明系统。通过监测光线、温度和人体感应等信息,并与Arduino控制器进行交互,系统可以根据设定的条件来自动调光或响应远程操作。 通过Proteus的仿真,我们可以验证智能照明系统的功能和性能,以及与Arduino的串口通信是否正常。这有助于我们在实际制作之前对整个系统进行调试和优化,从而确保系统的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值