AtCoder Beginner Contest 103 - D Islands War (贪心)

DEV-C++调试设置        昨天用C/C++去考了CSP,结果用DEV-C++调试总是闪退,按照我的记忆打开了调试参数,迷迷糊糊搞了一通,还是没办法调试,难受了几个小时。所以今天痛下决心,一定要写下DEV-C++设置调试的过程,警示自己! 解决步骤 1.打开DevC++找到上方工具栏 2.点击选择编译选项,再按下图所示设置即可 阅读详情

题目

 

题意:

给你n个点,他们1到n依次从左到右连接。问你m对数(A,B)。AB不能相连。

问你最少要拆多少条边.

 

POINT:

O(m)的做法:

记录每一个左端点,与他有争议的最近的右端点。记为a数组(可以贪心的知道断每一个右端点是最优的)。

那么假设断的是a[1],如果往后扫的有争议的右端点(比如a[2])比a[1]大,那么就只要断a[1]就行了。

如果比a[1]小,那么断a[2]。

用了输入挂,必须文件输入

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <string>
#include <map>
#include <math.h>
using namespace std;
#define LL long long
 
 
#define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1<<22, stdin), p1 == p2) ? EOF : *p1++)
char buf[(1 << 22)], *p1 = buf, *p2 = buf;
inline int read() {
    char c = getchar(); int x = 0, f = 1;
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
    return x * f;
}
 
 
 
int main()
{
    int n,m;
    int* a = new int[(int)1e7 + 10];
    n=read();
    m=read();
//  cin>>n>>m;
    int M=1e7+7;
    for(int i=1;i<=n;i++)
        a[i]=0;
    for(int i=1;i<=m;i++){
        int l,r;
        l=read();
        r=read();
//      cin>>l>>r;
        if(r<l) swap(r, l);
        M=min(M,l);
        if(a[l]!=0&&a[l]>r) a[l]=r;
        else if(a[l]==0) a[l]=r;
    }
    int ans=1;
    int k=a[M];
    for(int i=1;i<=n;i++){
        if(a[i]==0) continue;
        if(i>=k){
            ans++;
            k=a[i];
        }else if(k>a[i]){
            k=a[i];
        }
    }
    if(m==0) printf("0\n");
    else
        printf("%d\n",ans);
    return 0;
 
}

 

m*log(m)的做法:

R端点从左到右排序。然后看看L到R有没有拆至少一条边,有的话就不用拆了。

没有的话拆R这个点的边。

看L到R有没有拆边可以用树状数组实现log(N)的效率。

 

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <string>
#include <map>
using namespace std;
#define LL long long
const int maxn = 1e6+33;
const int mod = 1e9+7;

int num[maxn];

struct node
{
    int l,r;
    bool friend operator < (node a,node b){
        return a.r<b.r;
    }
}q[maxn];
int n,m;
void add(int x,int p)
{
    for(int i=x;i<=n;i+=i&-i)
        num[i]+=p;
}

int query(int x)
{
    int ans=0;
    for(int i=x;i>=1;i-=i&-i){
        ans+=num[i];
    }
    return ans;
}


int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=m;i++){
        scanf("%d%d",&q[i].l,&q[i].r);
    }
    sort(q+1,q+1+m);
    int ans=0;
    for(int i=1;i<=m;i++){
        int to = query(q[i].r)-query(q[i].l);
        if(to==0){
            add(q[i].r,1);
            ans++;
        }
    }
    printf("%d\n",ans);
    return 0;

}

 

OpenTK简介 OpenTK 因其强大的功能、跨平台特性和灵活性,适用于多种需要图形和计算能力的应用场景,为开发者提供了丰富的可能性和创作空间。 阅读详情

相关推荐

Vivado FIR Complier_IP核使用方法

文章依靠该IP核对应手册PG149写的,因为笔者需求简单,没有深入挖掘功能,可以自行下载学习。

2302_80180551的博客 3987

AtCoder Beginner Contest 103 D - Islands War

Time limit : 2sec / Memory limit : 1024MB Score : 400 points Problem Statement There are N islands lining up from west to east, connected by N−1 bridges. The i-th bridge connects the i-th island f...

qq_42711314的博客 684

某盾blackBox逆向——纯算

某盾blackBox逆向——纯算

Lzyydsb的博客 5891

AtCoder Beginner Contest 103 题解

A - Task Scheduling Problem Time limit : 2sec / Memory limit : 1024MB Score : 100 points Problem Statement You have three tasks, all of which need to be completed. First, you can complete any one...

Ever_glow的博客 928

H3C VRF实验

POP-vpn-instance-RT1]route-distinguisher 11:11 # VPN实例-RT1的路由区分器值11:11。配置路由泄露,其实就是在一个VPN示例中添加另一个VPN实例的下一跳,比如在VPN实例RT1中添加去往SRV的默认路由。但是也有了一个新的问题,那就是RT1、RT2和RT3也能互访了,这让VPN实例变得没有意义了。[POP]ip vpn-instance RT1 #配置vpn实例-RT1。绑定了VPN实例,所以要把路由添加到VPN实例POP中。

m0_68698993的博客 4024

Python 静态导入与动态导入

python中模块的静态导入 与 动态导入(运行时指定模块),以及具体对应示例。

慢也好,步子小也好,往前走就好~ 717

【AtCoder】 AtCoder Beginner Contest 103 (ABC103)

先上一张最终结果的图吧: 感觉AtCoder的ABC还是比较练手的,考验代码速度,网速,D题还会有一些思维难度。 这次ABC由于网络原因,很迟才看到题,但完成得还是不错的。 题解: A 题意:给你三个都需要被完成的任务的难度,均为1至100的正整数。 首先,你可以用0的花费完成任何一个任务。 如果你完成了一个任务,那么你可以完成另一个任务,花费是两个任务的难度的差的绝对值。 题...

ezoixx130's Blog 5374

SFM(structure from motion 从运动恢复结构)和MVS(multi-view stereo 多视图立体视觉)

主要目的:SFM是重建稀疏点云的,MVS重建的是稠密点云。 输入的数据:SFM是没有标定的数据,而MVS输入的是标定的数据。 为什么SFM无法重建出稠密的点云,但是MVS可以? SFM中我们用来做重建的点是由特征匹配提供的!这些匹配点天生不密集!MVS则几乎对照片中的每个像素点都进行匹配,几乎重建每一个像素点的三维坐标,这样得到的点的密集程度可以较接近图像为我们展示出的清晰度。 SFM和MVS关系 SFM给MVS算好了输入视角的位姿,内参,稀疏点云以及它们的共视关系,MVS再利用这些信息以及彩色图

Vpn_zc的博客 1万+

AtCoder Beginner Contest 103

https://beta.atcoder.jp/contests/abc103 A - Task Scheduling Problem Time Limit: 2 sec / Memory Limit: 1024 MB Score :100100points Problem Statement You have three tasks, all of which need t...

weixin_30851409的博客 325

PyQt5自动化测试,让测试更加便利

PyQt5是一个Python的GUI编程工具包,帮助开发者可以更加简单、快捷地创建图形界面和处理用户输入。在PyQt5中有两种常见的测试方式:手动测试和自动化测试。手动测试需要通过点击、输入等交互操作进行测试,自动化测试则是通过程序模拟鼠标、键盘等操作进行测试。这段代码创建了一个简单的窗口,其中包含一个按钮。这段代码打开一个本地HTML文件,点击页面上的按钮并检查输出是否为“Button clicked”。以上就是在PyQt5中进行自动化测试的简单示例。使用PyQt5可以大大简化测试过程,提高测试效率。

PixelCoder的博客 710

基于Python的船舶AIS数据爬取与分析:从数据采集到可视化实战

本文详细介绍了如何使用Python构建一个完整的船舶AIS数据爬取与分析系统。文章从AIS系统的基本原理讲起,逐步深入到数据采集、存储、清洗、分析和可视化的全流程。我们将使用最新的Python技术栈,包括aiohttp异步爬虫、MongoDB存储、Pandas数据处理以及Pydeck三维可视化等。本文提供了完整的代码实现,并探讨了在实际应用中可能遇到的问题及其解决方案。关键词:AIS数据、Python爬虫、异步IO、数据可视化、海事分析。

2201_76125261的博客 811

AtCoder Beginner Contest 103 —D Islands War

题目:https://abc103.contest.atcoder.jp/tasks/abc103_d 这题简单,只要把每个岛的左端与右端找到进行对比就行。 #include&lt;stdio.h&gt; #include&lt;string.h&gt; int a[100000+100]; int main(){ int n,m; scanf("%d%d",&amp;n...

Mr_Right_zwu的博客 660

从 PI Start Page 到 ESR、ID、SLD,重新理解 SAP PI 的工具访问体系

摘要 SAP PI工具入口设计反映了系统核心分工逻辑。不同角色通过特定入口访问专属工具:集成顾问使用Enterprise Services Builder设计接口,BASIS管理员通过SAP NetWeaver Administrator监控运行状态,技术顾问在Integration Builder配置路由,系统维护则需进入System Landscape Directory。这种设计体现了PI平台将工作划分为管理、技术配置、设计、业务配置和监控五大领域。尤其值得注意的是技术配置与业务配置的连续性关系,如I

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1870

AtCoder Beginner Contest 103 A-D

无题解

YHaX的博客 709

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

atcoder regular contest D abs 思路

传送门 思路:首先手推好多个样例最后都是不得不到最后两个做差。 A和B两个人玩游戏。 说说弱的想法: 我觉得先手A可以有以下拿法: 方案1:如果A拿到最后一张并且可以比其他策略更优,那么拿完。 方案2:如果拿完n张牌但是不如拿完n-1张牌,让给B拿最后一张更大,那么选这种。方案3:如果A拿完n-2,B有两种选择 {拿n-1(其实和A拿完全部等价)直接拿完剩下缩小差距(B不拿倒数第二个说

DK 508

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Atcoder ABC053【A、B、C、D】

A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has decided to participate in AtCoder Beginner Contest (ABC) if his current rating is le

mengxiang000000 1554

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

HDU 6047 Maximum Sequence (贪心)

Maximum Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 452    Accepted Submission(s): 242 Problem Description Steph is ex

Mr_Treeeee的博客 1103

Educational Codeforces Round 29 - B. Kayaking

B. Kayaking time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Vadim is really keen on travelling. Recently he

Mr_Treeeee的博客 793

EOJ Monthly 2017.12 - C. 易位构词 (贪心)

C. 易位构词 Time limit per test: 2.0 seconds Memory limit: 256 megabytes 易位构词 (anagram),指将一个单词中的字母重新排列,原单词中的每个字母都出现有且仅有一次。例如 "unce" 可以被易位构词成 "ecnu"。在某些情况下,要求重排而成的依然是一个单词,但本题没有这种要求,因为我们根本没有词

Mr_Treeeee的博客 755

Codeforces Round #437 (Div. 2) - C. Ordering Pizza(贪心)

C. Ordering Pizza time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output It's another Start[c]up finals, and that

Mr_Treeeee的博客 705

Educational Codeforces Round 31 - D. Boxes And Balls (哈夫曼树)

time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Ivan has n different boxes. The first of them contains some ball

Mr_Treeeee的博客 694

2017年浙江中医药大学大学生程序设计竞赛 - D CC的神奇背包(贪心)

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 cc最近收到了好多礼物,对着满地大小不一的礼物,她想要一个包来装,于是dd就掏出了一个会说话的神奇背包给cc装礼物。 cc为了一次性装尽可能多的礼物,于是跟这个背包定下了一个规则,对每个礼物,背包会给出它对这件礼物的

Mr_Treeeee的博客 691

2017 CCPC 秦皇岛 & ZOJ 3987 - Numbers (贪心+大数)

Numbers Time Limit: 2 Seconds      Memory Limit: 65536 KB DreamGrid has a nonnegative integer . He would like to divide  into  nonnegative integers  and minimizes their bitwise or (i.e. an

Mr_Treeeee的博客 541

HDU 6178 Monkeys (贪心+输入挂)

Monkeys Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 153428/153428 K (Java/Others) Total Submission(s): 934    Accepted Submission(s): 311 Problem Description There is a tree ha

Mr_Treeeee的博客 520
上一篇: 牛客网暑期ACM多校训练营(第一场) - E Removal (dp)
下一篇: hihoCoder 编程练习赛69 - C 阶乘问题
Mr_Treeeee
博客等级 码龄10年 38粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值