洛谷 P2025 脑力大人之监听电话

P2025 脑力大人之监听电话

题目背景

画外音:

(声明:不要管前面那个,纯属意外,现已经重新编题,绝对原创)

上次海选,我们选出了参赛者中的20%参加本次比赛,现在我们将进行第二轮的筛选,这次的比赛将更加残酷。每25人为一组,其中的第一名将直接进入下一轮,而第4名以后的人(不包括第4名)将被直接淘汰。第2-4名将参加接下来的加赛,加赛中的前2%将进入下一轮。

欢迎您收看有洛谷卫视重磅推出的综合性文艺知识类节目“开心玩游戏,轻松赢比赛”,我是LUWM。学编程,就选洛谷, 感谢洛谷Online Judge对本节目的大力支持。下面,我们有请10位选手上台,由大屏幕给出题目。

题目描述

话说埃菲尔铁塔小区的房子只有一栋,且只有一层,其中每一家都装有一个监听器,具体地,如果编号为第i家的人给编号第j家的人打了电话,i<=j,当然,也会有些人无聊地自己给自己打电话,那么第i,i+1,i+2,…,j-1,j号的监听器都会受到一次信号。现在把每个监听器的受到信号数都告诉你(即A1到An),请问他们至少打了几次电话?

输入输出格式

输入格式:

第一行一个数N,表示用户数。

第二行N个数,表示监听器收到的信号数。

输出格式:

一个数,最少的打电话次数。

输入输出样例

输入样例#1: 复制

input1:5
1 2 3 2 1
input2:5
1 4 4 5 1

输出样例#1: 复制

output1:3
output2:5

说明

对于100%的数据,1<=N<=1000,1<=Ai<=2000

思路:搜索

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,pos,ans;
int num[1010];
void dfs(int l,int r){
    if(l>r)    return ;
    ans++;
    for(int i=l;i<=r;i++)
        num[i]-=1;
    int po=l;
    for(int i=l;i<=r;i++)
        if(num[i]==0){
            dfs(po,i-1);
            po=i+1;
        }
        else if(i==r)    dfs(po,r);
}
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&num[i]);
    pos=1;
    for(int i=1;i<=n;i++)
        if(num[i]==0){
            dfs(pos,i-1);
            pos=i+1;
        }
        else if(i==n)    dfs(pos,n);
    cout<<ans;
}
时间: 2024-10-07 02:00:41

洛谷 P2025 脑力大人之监听电话的相关文章

监听电话录音

package com.example.calling; import java.io.IOException; import android.app.Service; import android.content.Context; import android.content.Intent; import android.media.MediaRecorder; import android.os.IBinder; import android.telephony.PhoneStateList

监听电话状态的模板代码

package com.example.calling; import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.IBinder; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; public class Ph

监听电话来时候的一些状态

#import <CoreTelephony/CTCallCenter.h> #import <CoreTelephony/CTCall.h> /// 监听拨打电话状态 _callCenter = [[CTCallCenter alloc] init]; _callCenter.callEventHandler=^(CTCall* call) { if (call.callState == CTCallStateDisconnected) { NSLog(@"挂断电话&q

洛谷P2031 脑力达人之分割字串

f[ i ] 表示前 i 个字符最多能分割成几份 从第 i 位 枚举 模式串 枚举他们是否能够匹配 能就取 max 1 #include <bits/stdc++.h> 2 #define For(i,j,k) for(int i=j;i<=k;i++) 3 using namespace std ; 4 5 const int N = 311 ; 6 char s[N] ; 7 int n,L,mx,l ; 8 char type[501][N] ; 9 int f[N],len[51

iOS监听电话事件

项目上有个需求,要求打完电话后加积分. 首先导入这两个头文件: #import <CoreTelephony/CTCallCenter.h> #import <CoreTelephony/CTCall.h> 添加属性: @property (nonatomic, strong) CTCallCenter *callCenter; 获取状态如下: self.callCenter = [[CTCallCenter alloc] init]; self.callCenter.callEv

android 电话监听和拦截

一.首先在manifest.xml文件中获取监听电话权限,注册监听电话的Activity <receiver android:name=".PhoneReceiver"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.PHONE_STATE"/> <action android:nam

赵雅智_service电话监听2加接通电话录音

步骤: 创建CallStateService继承Service 取得电话服务 监听电话动作 电话监听的对象 没有电话时 停止刻录 重设 刻录完成一定要释放资源 电话响铃时 从麦克风采集声音 内容输出格式 音频编码方式 获取sd卡目录并存入 电话接通时 开始录制 电话监听的行为 启动service 注册service并添加监听电话状态的权限 监听电话状态权限 sd卡读写权限 音频录制权限 AndroidManifest.xml <?xml version="1.0" encodin

服务中电话状态的监听

public class AddressService extends Service { public static final String tag = "AddressService"; private TelephonyManager mTM; private MyPhoneStateListener mPhoneStateListener; private final WindowManager.LayoutParams mParams = new WindowManager

android 呼入电话的监听(来电监听)转

需要权限: <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 方式一:通过广播接收来电 package com.zhouzijing.android.demo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import