NOIP 2011 Day1 T2 选择客栈

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cmath>
 4 #include<string>
 5 #include<cstring>
 6 #include<algorithm>
 7 #include<vector>
 8 #include<queue>
 9 #include<stack>
10 #include<iomanip>
11 #include<cstdlib>
12 using namespace std;
13 struct data{
14     int sd,xf;
15 };
16     data co[200005];
17 int n,k,p,ans,cnt,minn=210000,s;
18 int sum[55][200005],st[200005];
19 int main()
20 {
21     freopen ("hotel.in","r",stdin);
22     //freopen ("hotel.out","w",stdout);
23     scanf ("%d%d%d",&n,&k,&p);
24     for (int i=1;i<=n;i++)
25     {
26         scanf ("%d%d",&co[i].sd,&co[i].xf);
27         for (int j=0;j<k;j++)
28         {
29             if (j==co[i].sd)  sum[j][i]=sum[j][i-1]+1;
30             else  sum[j][i]+=sum[j][i-1];
31         }
32     }
33     for (int i=n;i>=1;i--)//here
34     {
35         if (co[i].xf<=p)  minn=min(minn,i);
36         st[i]=minn;
37     }
38     for (int i=1;i<=n-1;i++)
39     {
40         if (st[i]>200000)  continue;
41         if (st[i]==i)  ans+=sum[co[i].sd][n]-sum[co[i].sd][i];
42         else ans+=sum[co[i].sd][n]-sum[co[i].sd][st[i]-1];
43     }
44     printf ("%d",ans);
45     return 0;
46 }
时间: 2024-10-14 16:15:21

NOIP 2011 Day1 T2 选择客栈的相关文章

NOIp 2011 Day1 解题报告

1.    铺地毯 送分题…… 枚举给定矩形,判定给定点是否在矩形内.求出标号最大的哪个矩形即可. 复杂度O(N) 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 using namespace std; 7 8 //variable// 9 int n,a[10010],b[10010],g

NOIP 2016 Day1 T2 天天爱跑步

题目大意 给定一个n个节点,n?1条边的树.有m个玩家,第i个玩家从xi走树上最短路径到yi.玩家第0秒在自己的起点上,然后每秒移动一条边,移动到终点后结束移动. 每个节点上有一个观察员以及权值wi.如果有一个玩家在其移动的第wi秒恰好到达这个点,那么这个点上的观察员就会观察到他(如果这个点是终点,且玩家在wi秒之前到达不算). 求每个点上的观察员分别观察到了多少个玩家. 1≤n≤299998,1≤m≤299998 题目分析 我们将每条路径拆成从出发点到lca,和从lca的下一个点到结束点两段.

NOIP 2017 Day1 T2 时间复杂度

luogu题面 大模拟...并不难(然而考场上写挂了) 用 3 个读入函数,解决读入问题 双栈齐发,一个记录使用过的字母,另一个记录复杂度贡献情况 用 bre 表示当前跳出循环的层数 用 err 表示当前编译状态(是否编译失败) s 和 ans 分别表示当前复杂度和总复杂度 那么当读取到 'F' 时,我们就要做以下几点: 读取循环中使用的字母,并判断其是否被使用过,并将其标记为已使用: 读取循环的起止值,判断其能否被进入,并且处理好跳出循环的层数: 判断该循环对复杂度的贡献情况,处理好 s 和

2011 选择客栈

选择客栈 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中.晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p . 他们想知道总共有多少种选择住宿的方案,

NOIP 2011 Day 1 部分题解 (Prob#1 and Prob#2)

Problem 1: 铺地毯 乍一看吓cry,地毯覆盖...好像是2-dims 线段树,刚开头就这么难,再一看,只要求求出一个点,果断水题,模拟即可.(注意从标号大的往小的枚举,只要有一块地毯符合要求就输出,返回.) (全篇未完结,代码就不发了.) Problem 2: 选择客栈 模拟果断会超时,所以用类似动态规划的方法. 用$\text{sum}\left[ i\right]$表示从一号客栈到i号客栈途中的符合要求的Café总数,自然,$\text{O}\left( n\right)$的时间复

NOIP 2011 Day 1

NOIP 2011 Day 1 tags: NOIP 搜索 categories: 信息学竞赛 总结 铺地毯 选择客栈 Mayan游戏 铺地毯 Solution 因为只会询问一个点被谁覆盖, 而且后面的地毯会覆盖前面的地毯, 所以只需要从后往前枚举地毯, 只要能覆盖这个点就是最终覆盖它的地毯. Code #include<iostream> #include<cstdio> using namespace std; int x[10005]; int y[10005]; int a

noip2011 选择客栈

P1311 选择客栈 375通过 1K提交 题目提供者该用户不存在 标签递推2011NOIp提高组 难度普及+/提高 提交该题 讨论 题解 记录 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中.晚上,他们打算选择一家咖啡店

NOIP201106选择客栈

(本来像这种东西我都是写进程序注释里的,然而杨老师说不写就罚跑圈..所以只能写了QAQ) 第一次写博,感觉没毛线好写的,贴道水题好了QAQ(其实是因为看WXJ和LJX围着这题的测试数据讨论了半个多小时屁结论都没有) NOIP201106选择客栈 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述    丽江河边有n家很有特色的客栈,客栈按照其位置顺序从1到n编号.每家客栈都按照某一种色调进行装饰(总共k种,用整数0到k-1表示)

洛谷P1311 [NOIP2011提高组Day1T2] 选择客栈

P1311 选择客栈 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中.晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p . 他们想知道总共有多少种选择