HDU NO.2037 今年暑假不AC(时间序列贪心),,,

本文提供了一种方法,通过将节目按结束时间排序来选择最多时间上互不冲突的节目。

问题描述:

给你一个整数n表示总共的节目个数,然后给出n组数据每一组由两个整数组成,分别表示开始时间和结束时间。看你最多能选取几个时间上互不冲突的节目。

题目链接:点击打开链接

思路:

把每组数据以结束时间从小到大排序,每次都选取结束时间最早的节目。(具体看代码)

代码:

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
#define INF 0x3f3f3f3f

using namespace std;

const int MAX = 10086;

int main(){
    int n;
    //分别表示开始时间和结束时间
    int B[MAX], E[MAX];
    while(~scanf("%d", &n) && n){
        int t = 0, cnt = 0;
        for(int i = 0; i < n; i++)
            scanf("%d%d", &B[i], &E[i]);
        //用pair容器,比起二维数组更简洁
        pair<int , int> arr[MAX];
        //下面要以结束时间排序,所以把E[i]赋给.first
        for(int i = 0; i < n; i++){
            arr[i].first = E[i];
            arr[i].second = B[i];
        }
        sort(arr, arr + n);
        //贪心,去第一个然后同后面的值比较
        for(int i = 0; i < n; i++){
            if(t <= arr[i].second){
                cnt++;
                t = arr[i].first;
            }else
                continue;
        }
        cout << cnt << endl;
    }
    return 0;
}


要解决被HDU WAF(Web应用防火墙)拒绝的问题并调整代码,可从以下几个方面着手: ### 网络访问规范 - **IP限制**:HDU WAF可能因IP存在异常访问行为而拒绝访问。检查IP是否被列入黑名单,若因频繁请求被临时封禁,可等待封禁时间结束或联系HDU相关技术支持人员说明情况,请求解封。 - **请求频率**:过度频繁的请求会触发WAF的防护机制。调整代码中的请求频率,添加适当的延迟。以下是Python中使用`time.sleep()`函数添加延迟的示例: ```python import time import requests for i in range(10): response = requests.get('http://acm.hdu.edu.cn') print(response.text) time.sleep(1) # 每次请求间隔1秒 ``` ### 代码合规性 - **请求头设置**:确保代码中的请求头信息符合正常浏览器的请求头格式。部分WAF会根据请求头信息判断请求是否正常。以下是Python中设置请求头的示例: ```python import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get('http://acm.hdu.edu.cn', headers=headers) print(response.text) ``` - **请求参数**:检查代码中发送的请求参数是否包含恶意字符或异常内容。确保参数符合题目要求和网站规定。 ### 代码逻辑与题目要求 - **理解题目意思**:仔细阅读题目描述,确保代码逻辑符合题目要求。如VJ的题有很多格式要求,多打一个空格、没换行系统就会评测为presentation error,所以要在代码中严格遵循题目要求的输出格式[^2]。 - **优化算法复杂度**:若代码运行时间过长或占用资源过多,可能会被WAF视为异常请求。对代码中的算法进行优化,降低时间和空间复杂度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值