【NOIP2011提高组】选择客栈
题目不附了,是一个单纯的ST模型,但是考验各种常数优化。
最大的优化是对于同颜色的客栈来说,如果1号和2号成功配对了,那么1和3,1和4都可以成功配对,那么只要找到一对成功配对的,我们就直接加上剩下的对数就好了。
代码之中使用了一些特殊的存储方式做了点查询枚举的优化,可能有点难看……我找个时间敲一个比较易懂的代码,在那之前就麻烦客官看看这个丑的要死的代码了OYZ
- #include <algorithm>
- #include <iostream>
- #include <fstream>
- #include <cstring>
- #include <cstdlib>
- #include <cmath>
- using namespace std;
- ifstream fin("hotel.in");
- ofstream fout("hotel.out");
- int Beiz[][][]={},Hote[][]={};//0为颜色,1为价格
- int Color[][]={};//第i种颜色的顺序排列客栈
- int gs[]={};//
- int C2[]={,,,,,,,,,,,,,,,,,,,};
- int bh[]={};//在Color数组中的编号
- int Colors=,Hots=,Most=;
- void Bz(int cs);//倍增预处理
- int ST(int ks,int js);//ST算法查询最小值
- int main(void)
- {
- fin>>Hots>>Colors>>Most;
- for(int i=;i<=Hots;i++)
- {
- fin>>Hote[i][]>>Hote[i][];
- Color[Hote[i][]][++gs[Hote[i][]]]=i;
- bh[i]=gs[Hote[i][]];
- Beiz[i][][]=Hote[i][];
- Beiz[i][][]=i+;
- }
- Bz();
- long long int Least=0ll,Fas=0ll,Zz=0ll,Gs=0ll;
- for(int i=;i<=Hots;i++)
- {
- for(int j=bh[i]+;j<=gs[Hote[i][]];j++)
- {
- Zz=Color[Hote[i][]][j];
- Least=ST(i,Zz);
- if(Least<=Most)
- {
- Fas+=gs[Hote[i][]]-j+;
- break;
- }
- }
- }
- fout<<Fas<<"\n";
- return ;
- }
- void Bz(int cs)
- {
- if(cs==)return;
- for(int i=;i<=Hots;i++)
- {
- Beiz[i][cs][]=min(Beiz[Beiz[i][cs-][]][cs-][],Beiz[i][cs-][]);
- Beiz[i][cs][]=Beiz[Beiz[i][cs-][]][cs-][];
- }
- Bz(cs+);
- return;
- }
- int ST(int ks,int js)
- {
- int L1=,L2=,Mid=;
- double K=log((double)(js-ks))/log((double));
- Mid=(int)K;
- L1=Beiz[ks][Mid][];
- L2=Beiz[js-C2[Mid]+][Mid][];
- return min(L1,L2);
- }
【NOIP2011提高组】选择客栈的更多相关文章
- Noip2011 提高组 选择客栈
P1311 选择客栈 直通 思路: ①看题,我们可以发现一个显然的性质,即当最左边的客栈向右移动时,最右边的客栈时单调向右的,并且右端点往右的客栈也符合要求.(因为只要左侧有一个满足的,右边的自然可以 ...
- NOIP2011提高组 选择客栈
原题 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖 ...
- luogu1003铺地毯[noip2011 提高组 Day1 T1]
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- [NOIP2011] 提高组 洛谷P1312 Mayan游戏
题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定 ...
- [NOIP2011] 提高组 洛谷P1315 观光公交
题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2 ...
- [NOIP2011] 提高组 洛谷P1003 铺地毯
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- NOIP2011(提高组)DAY2---观光公交(vijosP1741)
描述 风景迷人的小城Y市,拥有n个美丽的景点.由于慕名而来的游客越来越多,Y市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0分钟出现在1号景点,随后依次前往2.3.4……n号景 ...
- 洛谷-铺地毯-NOIP2011提高组复赛
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- 刷题总结——mayan游戏(NOIP2011提高组day2T3)
题目: 题目背景 NOIP2011提高组 DAY1 试题. 题目描述 Mayan puzzle 是最近流行起来的一个游戏.游戏界面是一个 7 行 5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即 ...
- 洛谷P1003 铺地毯 noip2011提高组day1T1
洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...
随机推荐
- Controller的激活
Controller的激活 概述 在此系列开篇的时候介绍了MVC的生命周期 , 对于请求的处理,都是将相应的类的方法注册到HttpApplication事件中,通过事件的依次执行从而完成对请求的处理. ...
- [大整数乘法] java代码实现
上一篇写的“[大整数乘法]分治算法的时间复杂度研究”,这一篇是基于上一篇思想的代码实现,以下是该文章的连接: http://www.cnblogs.com/McQueen1987/p/3348426. ...
- defer 与 async
defer HTML4.01定义的 只适用于外部脚本(IE4~7会支持内嵌脚本的defer属性) 告诉浏览器立即下载,延迟执行,脚本会延迟到整个页面全部解析完毕之后才运行 HTML5规范要求脚本按照他 ...
- MySQL TIMESTAMP(时间戳)详解
在创建表时如果表中有一个字段类型为TIMESTAMP,则该字段默认的生成语句为: CREATE TABLE `test` ( `id` int(11) DEFAULT NULL, `ctime` ti ...
- Power BI移动端应用
随笔- 420 文章- 6 评论- 1927 无处不在的商业智能---Power BI移动端应用 此篇来自于微软商业智能网站的官方博客团队发布的Power BI在线资料其中的一部分,完整版地 ...
- ARP 和 RARP
ARP 和 RARP 1.ARP 地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确地址解析协议定其物理地址的一种协议. 在 ...
- CSS:用Less实现栅格系统
CSS:用Less实现栅格系统 背景 公司一直没有专职的前端和美工,Javascript相对来说我熟悉一点,CSS+HTML有四五年没有搞过了,最近要学一下,招聘或和美工配合的时候会有用处. 收集的资 ...
- [置顶] MyElipse9.0 M1安装svn(测试100%通过)
为什么标题要写100%通过呢?原因是以前的方法(直接复制到plugin里(MyEclipse 6.0可以,我试过),link安装)都不好用了,9.0M1不吃这一套,所以告诉大家这么做一定能够装上!! ...
- linux培训笔记1
第五章 文件和目录的管理 linux命令的基本格式 #命令 [选项] [参数] 1.linux下的常用命令 (1)ls 查看(列出)目录下的内容 -l 查看文件详 ...
- 安卓开发16:Spinner 下拉列表控件
Spinner 下拉列表控件 创建一个activity_main.xml文件: <RelativeLayout xmlns:android="http://schemas.androi ...