PocketMoney
PocketMoney
( Money.pas/cpp/c)
Description
学校为了表彰tsoi的优异成绩, m个领导每人都决定给tsoi的一些人发一些小红包。
于是n个Tsoier排成一排,等待着收钱。不过由于各种原因,每个人最多只可以收一个红
包,所以原因你懂的,每个人都会选择最大的那个红包收下- -。
Input
第一行两个整数n,m
接下来m行,每行三个整数l r c。即这个领导计划给第l至r个Tsoier价值为c的红包
Output
由于数据较大, 为了减少输出所用的不必要的时间, 请采取以下方法输出: 假如a[i]为第i
个Tsoier最终收到的钱
ans := (ans * 1200007 + a[i]) mod 999911659;( 1in)
SampleInput
3 2
1 2 1
2 2 2
SampleOutput
146411103
Hint
30% n,m<=5000
50% n,m <= 10000
80% n,m <= 500000tsoi Day1 2011.10.6
100% n <= 1000000, m <= 2000000
本题时限为4s
我打的暴力,60分
正解贪心,然后跳就过掉了。
先按value由大到小排序,贪心,因为只收最大的。
用一个数组记录当前有值的右端点,这个右端点意味着从当前的i到右端点已经放了红包,所以直接跳过这一段即可,i=a[i].r。
#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstring>
#define mod 999911659
#define base 1200007
#define inf 2147483647
#define For(i,a,b) for(register long long i=a;i<=b;i++)
#define p(a) putchar(a)
#define g() getchar()
//by war
//2017.10.15
using namespace std;
long long ans;
long long n,m;
struct packet
{
long long l,r,v;
bool operator<(const packet&aa)const
{
return v>aa.v;
}
}e[]; struct money
{
long long r,v;
}a[]; void in(long long &x)
{
long long y=;
char c=g();x=;
while(c<''||c>'')
{
if(c=='-')
y=-;
c=g();
}
while(c<=''&&c>='')x=x*+c-'',c=g();
x*=y;
}
void o(long long x)
{
if(x<)
{
p('-');
x=-x;
}
if(x>)o(x/);
p(x%+'');
}
int main()
{
freopen("money.in","r",stdin);
freopen("money.out","w",stdout);
in(n),in(m);
For(i,,m)
in(e[i].l),in(e[i].r),in(e[i].v);
sort(e+,e+m+);
For(j,,m)
{
for(long long i=e[j].l;i<=e[j].r;i++)
{
if(a[i].v!=)
{
i=a[i].r;
}
else
{
a[i].v=e[j].v;
a[i].r=e[j].r;
}
}
}
For(i,,n)
ans=(ans*base+a[i].v)%mod;
o(ans);
return ;
}
PocketMoney的更多相关文章
- 【bb平台刷课记】wireshark结合实例学抓包
[bb平台刷课记]wireshark结合实例学抓包 背景:本校形势与政策课程课需要在网上观看视频的方式来修得学分,视频网页自带"播放器不可快进+离开窗口自动暂停+看完一集解锁下一集(即不能同 ...
- 一:c语言(数据类型和运算符)
#include <stdio.h> /*就是一条预处理命令,它的作用是通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作.*/ int main() /*C程序就是执行主函数 ...
- NCE3
Lesson1 A puma at large Pumas are large, cat-like animals which are found in America. When reports ...
- New Concept English three(15)
31w/m 43 Children always appreciate small gifts of money. Father, of course, provides a regular supp ...
- c语言入门这一篇就够了-学习笔记(一万字)
内容来自慕课网,个人学习笔记.加上了mtianyan标签标记知识点. C语言入门 -> Linux C语言编程基本原理与实践 -> Linux C语言指针与内存 -> Linux C ...
- C语言基础知识总结大全
1.入门程序 #include <stdio.h> int main() { printf("Hello World!"); return 0; } 2.数据类型 数据 ...
随机推荐
- luogu1081 [NOIp2012]开车旅行 (STL::multiset+倍增)
先用不管什么方法求出来从每个点出发,A走到哪.B走到哪(我写了一个很沙雕的STL) 然后把每个点拆成两个点,分别表示A从这里出发和B从这里出发,然后连边是要A连到B.B连到A.边长就是这次走的路径长度 ...
- luogu2296 [NOIp2014]寻找道路 (bfs)
反着建边,从T bfs找合法的点,然后再正着bfs一下求最短路就行了 #include<bits/stdc++.h> #define pa pair<int,int> #def ...
- Mysql(五) JDBC
一.JDBC JDBC(Java DataBase Connectivity) 是Java 数据库连接API. JDBC完成三件事: 与一个数据库连接 向数据库发送SQL语句 ...
- spring.net框架配置和使用
spring.net框架学习笔记 spring.net框架是用于解决企业应用开发的复杂性的一种容器框架,它的一大功能IOC(控制反转),通俗解释就是通过spring.net框架的容器创建对象实体,而不 ...
- 解题:HAOI 2015 按位或
题面 Min-Max容斥:对于集合S $min(S)=\sum_{s∈S}(-1)^{|s|+1}max(s)$ $max(S)=\sum_{s∈S}(-1)^{|s|+1}min(s)$ 那么这个题 ...
- java 7 升级后,控制面板里找不到java图标了
如果电脑里只装了jre的情况下,好像从java 7 update 9开始,通过java自动升级程序完成升级后,控制面板里的java图标就不见了. 只好重新从java.sun.com上下载最新版的jre ...
- python中的functools模块
functools模块可以作用于所有的可以被调用的对象,包括函数 定义了__call__方法的类等 1 functools.cmp_to_key(func) 将比较函数(接受两个参数,通过比较两个参数 ...
- 转载自知乎大神---this 的值到底是什么?一次说清楚
你可能遇到过这样的 JS 面试题: var obj = { foo: function(){ console.log(this) } } var bar = obj.foo obj.foo() // ...
- Brief History of Machine Learning
Brief History of Machine Learning My subjective ML timeline Since the initial standpoint of science, ...
- Kafka 温故(二):Kafka的基本概念和结构
一.Kafka中的核心概念 Producer: 特指消息的生产者Consumer :特指消息的消费者Consumer Group :消费者组,可以并行消费Topic中partition的消息Broke ...