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解题报告的更多相关文章

  1. Noip2011 提高组 Day1 T1 铺地毯 + Day2 T1 计算系数

    Day1 T1 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小 ...

  2. luogu1003铺地毯[noip2011 提高组 Day1 T1]

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...

  3. Noip2011 提高组 Day1 T3 Mayan游戏

    题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定 ...

  4. NOIp2016 Day1&Day2 解题报告

    Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...

  5. NOIP2011 提高组 Day1

    自测:8:27——11:51 实际得分:100+60+20=180 期望得分:100+60+40=200 T3读错题,失20 http://cogs.pro/cogs/page/page.php?ai ...

  6. 2018.10.05 TOPOI提高组模拟赛 解题报告

    得分: \(100+5+100=205\)(真的是出乎意料) \(T1\):抵制克苏恩(点此看题面) 原题: [BZOJ4832][Lydsy1704月赛] 抵制克苏恩 应该还是一个比较简单的\(DP ...

  7. [NOIP2011提高组day1]-3-mayan游戏

    3.Mayan 游戏 (mayan.cpp/c/pas) [问题描述] Mayan puzzle 是最近流行起来的一个游戏.游戏界面是一个 7行 5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即 ...

  8. NOIP2011提高组 Day1 T3 Mayan游戏

    题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个7行×5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定的步 ...

  9. NOIP2009 提高组T3 机器翻译 解题报告-S.B.S

    题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先 ...

随机推荐

  1. [原创] 在spring 中使用quarts

    1.使用maven加载 quarts 的jar <dependency> <groupId>org.quartz-scheduler</groupId> <a ...

  2. paper 79:MATLAB函数,interp1

    在matlab中有一个interp1()函数,可以帮助解决问题,具体情况如下:MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,'method') 其中x ...

  3. Linux mail 命令参数

    linux mail 命令参数: 使用mail发邮件时,必须先将sendmail服务启动. mail –s “邮件主题” –c”抄送地址” –b “密送地址” -- -f 发送人邮件地址 –F 发件人 ...

  4. Mysql存储过程总结

    1.     关于MySQL的存储过程 存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣.好在MySQL 5.0终于开始已经支持存储过 ...

  5. Sql Server 2012 的新分页方法分析(offset and fetch) - 转载

    最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset ...

  6. oracle中的函数

    ORACLE中函数          Oracle已经内建了许多函数,不同的函数有不同的作用和用法,有的函数只能作用在一个记录行上,有的能够作用在多个记录行上,不同的函数可能处理不同的数据类型.常见的 ...

  7. setInterval 实时驱动界面改变

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. mysql笔记01 MySQL架构与历史、Schema与数据类型优化

    MySQL架构与历史 1. MySQL架构推荐参考:http://www.cnblogs.com/baochuan/archive/2012/03/15/2397536.html 2. MySQL会解 ...

  9. java总结第二次//数组及面向对象

    三.java数组 主要内容:数组概述.一维数组声明.数组元素的引用.数组元素的默认初始化.创建数组.数组初始化.多维数组.多维数组初始化.数组排序 1.数组概述 数组是多个相同类型数据的组合,实现对这 ...

  10. TI CC2541的整体目标

    1. App端会发送一定数量的byte过来蓝牙, 每2个byte是一个汉字的编码. 2. 拿到汉字编码之后, 统计字符数量, 然后通过SPI, 搜索编码 3. 收到的编码, 每个汉字字符有32个byt ...