咸鱼睡觉觉

Time Limit: 1000 MS     Memory Limit: 64 MB
Submit Status

咸鱼要睡觉觉了!

但那群咕咕有点烦。

咸鱼决定要赶走一些咕咕,使得他们不要这么吵。

那kk只咕咕们排成了一列。

咸鱼做出了nn个决定,第ii个决定是要在第aiai只咕咕到第bibi只咕咕之间至少赶走其中cici只咕咕。

但咸鱼又不想那么狠心,所以希望你能帮帮他,决定最少移走多少只咕咕可以满足咸鱼的所有要求。

Input

第一行两个整数kk nn,表示有kk只咕咕,咸鱼做出了nn个决定(1≤k≤500001≤k≤50000,1≤n≤500001≤n≤50000)。

接下来nn行,每行三个数aiai bibi cici(1≤ai≤bi≤k1≤ai≤bi≤k, 0≤ci≤bi−ai+10≤ci≤bi−ai+1),含义如上文。

Output

输出一个整数,表示至少要赶走多少只咕咕

Sample input and output

Sample Input Sample Output
3 3
1 1 1
2 2 1
3 3 0
2

Hint

赶走第11只和第22只咕咕!

Source

2018 UESTC ACM Training for Graph Theory

UESTC Online Judge

Copyright (C) 2012 - 2018 Ruins He(@ruinshe), Jianjin Fan(@pfctgeorge) and Yun Li(@mzry1992). Project home

Any Problem, Please Report On Issues Page.

AC代码为:

#include<bits/stdc++.h>
using namespace std;
struct part
{
 int ends,data,next;
};
int n,k,m,cnt;
struct part e[1000100];
int st[300000],vis[200100],que[2000000],dis[300000],ru[300000];
void combine(int x,int y,int z)
{
    cnt+=1;
    e[cnt].ends=y;
    e[cnt].data=z;
    e[cnt].next=st[x];
    st[x]=cnt;
}

int spfa(int x)
{
    int h,t,ii,nown;
    h=0; t=1;
    dis[x]=0;
    vis[x]=1;
    que[1]=x;
    while (h!=t)
    {
        h=(h+1)%1000000;
        nown=que[h];
        ii=st[nown];
        while (ii!=-1)
        {
            if (dis[e[ii].ends]<dis[nown]+e[ii].data)
            {
                dis[e[ii].ends]=dis[nown]+e[ii].data;
                if (!vis[e[ii].ends])
                {
                    vis[e[ii].ends]=1;
                    t=(t+1)%1000000;
                    que[t]=e[ii].ends;
                }
            }
            ii=e[ii].next;
        }
        vis[nown]=0;
    }
  return(dis[k]);
}

int main()
{
    scanf("%d%d",&k,&n);
    for (int i=0;i<=k;i++)
    {
        st[i]=-1;
            dis[i]=-10000;
            vis[i]=0;
    }
    cnt=0;
    int a,b,c;
    for (int i=1;i<=n;i++)
    {
        scanf("%d%d%d",&a,&b,&c);
        combine(a-1,b,c);
    }
    for (int i=1;i<=k;i++)
    {
        combine(i-1,i,0);
        combine(i,i-1,-1);
    }
    for (int i=1;i<=k;i++)
        combine(0,i,0);
     int ans=spfa(0);
        printf("%d\n",ans);
    return(0);
}

UESTC1961-咸鱼睡觉觉的更多相关文章

  1. 【SPFA与Dijkstra的对比】CDOJ 1961 咸鱼睡觉觉【差分约束-负权最短路径SPFA】

    差分约束系统,求最小值,跑最长路. 转自:https://www.cnblogs.com/ehanla/p/9134012.html 题解:设sum[x]为前x个咕咕中至少需要赶走的咕咕数,则sum[ ...

  2. 牛客网 Wannafly挑战赛8 A.小Y和小B睡觉觉

    写了一会不想写了... A-小Y和小B睡觉觉 链接:https://www.nowcoder.com/acm/contest/57/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制: ...

  3. About 睡觉觉吃饭饭

    rdc 的日常作息: 11:50 左右起床,洗漱后飞奔到超市买咖啡饼干,然后飞奔到实验室. 开始被比赛打:比赛前期觉没睡醒,题没读懂就开始乱写,签到签不上,比赛中期处于要被饿死的状态. 赛后吃饭饭,随 ...

  4. Node.js npm 详解

    一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...

  5. 36、重新复习html和css之二

    (1)由于公司是意大利的网段, (2)而且公司的电脑是保密的, (3)文件发不出去, (4)U盘插不进去. (5)而且我们组的项目整体上已经开发完毕,客户暂时没有什么大的需求, 所以如果我不把这些技术 ...

  6. JAVA编程中的类和对象

    1:初学JAVA,都知道JAVA是面向对象的编程.笔者这节开始说说类和对象.(实例仅供参考,如若复制粘贴记得修改包名和类名,避免出错) 学习JAVA的快捷键,Alt+/代码补全功能,其实此快捷键启动了 ...

  7. 曲线救国,解决Mac系统下,Android sdk下载失败的问题

    Mac下翻_墙的问题 话说GFW屏蔽谷歌已经有一阵子了,最近打算在Mac系统下折腾个Android应用,备好了IDE,只欠SDK,无奈下载时因为GFW的缘故,总是失败,我心痛哉! 由于本人偏爱Mac系 ...

  8. 怎样做出优秀的扁平化设计风格 PPT 或 Keynote 幻灯片演示文稿?(装)

    不知道你有没有想过,为什么很人多的扁平化 PPT 是这个样子: 或者是这样: 然而,还有一小撮人的扁平化 PPT 却拥有那么高颜值: 为什么会产生这么大的差距呢?丑逼 PPT 应该如何逆袭成为帅逼呢? ...

  9. Java的类演进过程

    1.从面向过程到面向对象 在大家最熟悉的C语言中,如果要定义一个复杂的数据类型就用结构体(Struct)来实现,而为结构体的每个操作都定义一个函数,这个函数与结构体本身的定义没有任何关系.程序的重心集 ...

随机推荐

  1. Python 基础 装饰器

    今天把学过的装饰器的知识进行回顾一下,说到装饰器,第一反应就是这个东西呢就是用来装逼的,为啥这样说呢,是应为没有这个东西照样可以干活,大部分工作都是可以做的,不管咋样还是把学过的装逼器梳理一下吧. 一 ...

  2. Redis持久化的几种方式——深入解析RDB

    Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而 ...

  3. 使用ndk交叉编译android各平台版本的第三方库

    只要弄明白了ndk-bundle的目录结构,交叉编译的基本原理就可以自行编写脚本去编译了.从仓库拿下代码包后,一般在linux平台下编译当前平台使用的库,只要使用其自动配置脚本configure进行平 ...

  4. Qt Framework 问题之 framework/Versions/A:bundle format unrecognized, invalid, or unsuitable

    在解决标题提到的问题之后,先来介绍下Qt Framework一些基本知识. 基于QT的Mac端工程,在打包时需要对所有需要嵌入到APP的framework及dylib文件进行手动签名处理. 一.签名处 ...

  5. 【algo&ds】8.最小生成树

    1.最小生成树介绍 什么是最小生成树? 最小生成树(Minimum spanning tree,MST)是在一个给定的无向图G(V,E)中求一棵树T,使得这棵树拥有图G中的所有顶点,且所有边都是来自图 ...

  6. Js获取宽高度的归纳总结

    首先,先吓唬一下我们的小白们!在js中的描述宽高的可以细分有22种. window.innerWidth //除去菜单栏的窗口宽度 window.innerHeight//除去菜单栏的窗口高度 win ...

  7. 2019-9-11:渗透测试,基础学习,ubuntu搭建LAMP

    一,apache web服务器安装 1,sudo apt-get install apache2 2,systemctl status apache2,检查apache2是否开启 #开启.关闭和重启a ...

  8. 【NOIP2017】【Luogu P3956】【SPFA】棋盘

    Luogu P3956 本题是一道简单的SPFA 具体看程序 #include<iostream> #include<cstdio> using namespace std; ...

  9. jquery浅复制和深复制区别

    jquery浅复制和深复制区别

  10. Python大神必须掌握的技能:多继承、super和MRO算法

    本文主要以Python3.x为例讲解Python多继承.super以及MRO算法. 1. Python中的继承 任何面向对象编程语言都会支持继承,Python也不例外.但Python语言却是少数几个支 ...