noip2011提高组day1+day2解题报告
Day1 T1铺地毯https://www.luogu.org/problem/show?pid=1003
【题目分析】
全部读入以后从最后一个往前找,找到一个矩形的范围覆盖了这个点,那这个矩形就是最上面的地毯,输出即可
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=;
int a[maxn],b[maxn],g[maxn],k[maxn];
int n,ans=-;
int x,y;
int main()
{
freopen("carpet.in","r",stdin);
freopen("carpet.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]);
scanf("%d%d",&x,&y);
int xx=n;
while(xx--)
{
if((a[xx+]<=x)&&(a[xx+]+g[xx+]>=x)&&(b[xx+]<=y)&&(b[xx+]+k[xx+]>=y))
{
ans=xx+;
break;
}
}
printf("%d",ans);
}
Day1 T2选择客栈https://www.luogu.org/problem/show?pid=1311
【题目分析】
首先说一下O(nk)的做法。zzl[i]表示第i种颜色的数量,bfh[i]表示不符合条件的酒店的数量,sum表示不符合条件的方案数,ans表示相同色调的酒店组合的所有情况
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n,k,p;
const int maxn=;
int a[maxn],b[maxn],zzl[],bfh[];
int ans=,sum=;
int main()
{
freopen("hotel.in","r",stdin);
freopen("hotel.out","w",stdout);
scanf("%d%d%d",&n,&k,&p);
for(int i=;i<=n;i++)
{
scanf("%d%d",&a[i],&b[i]);
if(b[i]<=p)
{
for(int j=;j<k;j++)
{
sum+=bfh[j]*(bfh[j]-)/;
bfh[j]=;
}
zzl[a[i]]++;
}
else
bfh[a[i]]++,
zzl[a[i]]++;
}
for(int i=;i<k;i++)
ans+=zzl[i]*(zzl[i]-)/,
sum+=bfh[i]*(bfh[i]-)/;
printf("%d",ans-sum);
return ; }
//当复杂度变为O(n)...我也不太会,codevs上的题解不错
#include<iostream>
using namespace std;
int n,k,p,m,x,y,sum;
int a[],b[],c[];
int main()
{
cin>>n>>k>>p;
for(int i=;i<=n;i++)
{
cin>>x>>y;
if(y<=p) m=i;//如果咖啡店的最低消费地于标准,那么记录其位置
if(m>=a[x]) c[x]=b[x];//如果在当前颜色的酒店之前有出现过同样颜色的酒店那么记录当前同种颜色的酒店的出现次数
/*特注:当到COODVS上第四组数据时也许会因为“y<=p”不会记录当前的位置,
但是会记录之前有满足“y<=p”条件的位置,
也就是说两个人住的客栈之间有满足条件的咖啡馆,
那么也就可以让c数组的对应颜色加上1了,即“c[x]=b[x]”
从而使后面的总数加上1*/
a[x]=i;//记录同样颜色的酒店最后一次的出现位置
sum+=c[x];
/*每一个酒店都可以作为对应点,所以不需要再去加上任何的判断,记录住宿的方法,
c数组可以理解为当前色调位置,到之前满足“y<=p”色调位置的方案 */
b[x]++;//记录出现次数的总数
}
cout<<sum;
return ;
}
noip2011提高组day1+day2解题报告的更多相关文章
- Noip2011 提高组 Day1 T1 铺地毯 + Day2 T1 计算系数
Day1 T1 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小 ...
- luogu1003铺地毯[noip2011 提高组 Day1 T1]
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- Noip2011 提高组 Day1 T3 Mayan游戏
题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定 ...
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
- NOIP2011 提高组 Day1
自测:8:27——11:51 实际得分:100+60+20=180 期望得分:100+60+40=200 T3读错题,失20 http://cogs.pro/cogs/page/page.php?ai ...
- 2018.10.05 TOPOI提高组模拟赛 解题报告
得分: \(100+5+100=205\)(真的是出乎意料) \(T1\):抵制克苏恩(点此看题面) 原题: [BZOJ4832][Lydsy1704月赛] 抵制克苏恩 应该还是一个比较简单的\(DP ...
- [NOIP2011提高组day1]-3-mayan游戏
3.Mayan 游戏 (mayan.cpp/c/pas) [问题描述] Mayan puzzle 是最近流行起来的一个游戏.游戏界面是一个 7行 5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即 ...
- NOIP2011提高组 Day1 T3 Mayan游戏
题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个7行×5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定的步 ...
- NOIP2009 提高组T3 机器翻译 解题报告-S.B.S
题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先 ...
随机推荐
- bzoj4137 [FJOI2015]火星商店问题
比较容易想到的做法是线段树套字典树,修改操作时在字典树上经过的节点维护一个最近被访问过的时间,这样询问操作只经过满足时间条件的节点,时间复杂度O(NlogN^2)但是因为线段树每个节点都要套个字典树, ...
- jquery 数组求差集,并集
var alpha = [1, 2, 3, 4, 5, 6], beta = [4, 5, 6, 7, 8, 9]; $.arrayIntersect = function(a, b){ return ...
- SQL Server练习
SQL Server 基本语法: http://www.w3school.com.cn/sql/sql_intro.asp 练习1: 运行语句: USE [Test1] select FNumber, ...
- js 默认选中select 选项
<select id="HDname" style="width: 150px;"><option value="0"&g ...
- java 网络编程(四)----UDP进阶篇聊天小程序
设计要求:单线程模式,客户端只发送数据,数据的来源为键盘录入,服务器端只接收数据,当客户端发送886的时候,客户端和服务器端都退出. 1. 发送端: public class Send impleme ...
- 鸟哥的linux私房菜学习记录之档案与目录管理
绝对路径和相对路径 绝对路径就是从根目录到某个目录下的路径,从根目录写起,也就是/ 相对路径就是从用户当前目录的路径写起 目录相关操作 cd 切换路径 例如:cd /var/www 切换到/var/w ...
- 【python cookbook】【数据结构与算法】17.从字典中提取子集
问题:想创建一个字典,其本身是另一个字典的子集 解决方案:利用字典推导式(dictionary comprehension)可轻松解决 # example of extracting a subset ...
- mysql主从同步及清除信息
主:reset master; 从:reset slave all; mysql主从配置: 1.MySQL主配置文件增加如下:default-storage-engine = innodbinnodb ...
- webservice cxf error:java.lang.IllegalArgumentException: Argument(s) "type" can't be null.
客户端请求DTO和服务器端的DTO定义不一样,客户端必须定义@XmlAccessorType和@XmlType,如: @XmlAccessorType(XmlAccessType.FIELD) @Xm ...
- vmdk虚拟机转换为OVF模板,导入esxi
VMware WorkStation安装目录下,有一个OVFTool文件夹,例如我电脑上的路径为:D:\VMware\VMware\OVFTool.通过CMD进入到命令行模式,更改到该目录下,运行如下 ...