咸鱼睡觉觉

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. Cauchy-Binet公式的证明 及 对Denton et al. (2019)的个人注(1)

    ------------恢复内容开始------------ 据新闻报道数学天才陶哲轩和3个物理学家研究出一个只用特征值就可以计算矩阵特征向量的公式, 我感觉很有趣, 这应该能够应用在很多领域中, 所 ...

  2. Javascript模块化开发2——Gruntfile.js详解

    一.grunt模块简介 grunt插件,是一种npm环境下的自动化工具.对于需要反复重复的任务,例如压缩.编译.单元测试.linting等,自动化工具可以减轻你的劳动,简化你的工作.grunt模块根据 ...

  3. [error]The command could not be located because '/usr/bin' is not included

    配置HBase环境变量的时候写错了,写成了如下: 之后便报错 解决: 系统命令找不到时,通常是路径不对,直接在命令行用全路径即可,配置环境变量时,加入自己的环境变量,还要附带上之前的变量.如最后加上: ...

  4. Python 面向对象-下篇

    面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实 ...

  5. ThreadLocal原理分析与代码验证

    ThreadLocal提供了线程安全的数据存储和访问方式,利用不带key的get和set方法,居然能做到线程之间隔离,非常神奇. 比如 ThreadLocal<String> thread ...

  6. 使用 Rsync 从 Windows 同步数据到 Linux

    为什么要使用 rsync 从 Windows 到 linux 进行同步? 我们经常会面临这种的情况,项目使用 Windows 开发,最终部署在 Linux 上,但有时想要进行测试.维护.迭代版本时操作 ...

  7. &#128293;《手把手教你》系列练习篇之1-python+ selenium自动化测试(详细教程)

    1.简介 相信各位小伙伴或者同学们通过前面已经介绍了的Python+Selenium基础篇,通过前面几篇文章的介绍和练习,Selenium+Python的webUI自动化测试算是 一只脚已经迈入这个门 ...

  8. Asp.Net Core下使用swagger生成api文档

    目录 一.前期准备 二.配置Swagger 三.参考 .Net Core中有两个集成NSwag的包,分别为Swashbuckle和NSwag.两者的配置大同小异.这里以NSwag为例. 一.前期准备 ...

  9. linux shell编程之变量和bash配置文件(第一篇)

    编程语言有两类 强类型:如C语言.数据具有其特定的类型,先声明定义后才能使用.数据运算时必须符合类型要求(如不能把字符串类型数据直接与整型数据做算数运算) 弱类型:如shell.数据默认为字符型,不用 ...

  10. 异常:java.lang.RuntimeException: Canvas: trying to draw too large(161740800bytes) bitmap

    现象 今天做一个安卓项目的时候,我使用了10张图片,这10张图片都是放在了drawable目录下. 根据这个错误,我在网上寻找解决问题的方案,然后我放在了mipmap-xxhdpi下结果可以运行. 但 ...