【HHHOJ】ZJOI2019模拟赛(十四)03.12 解题报告
得分: \(50+5+24=79\)
排名: \(Rank\ 2\)
\(Rating\):\(+79\)
\(T1\):【HHHOJ197】古明地(点此看题面)
基本上全部时间都用来想这题正解,最后只能写了个\(50\)分暴力。
\(50\)分做法如下:
考虑一个贪心,对于每次询问,我们先把\(k_i\)排个序,并预处理时把每个宠物的区间按左端点排个序。
然后从小到大枚举\(k_i\),同时维护一个\(p\),每次把左端点小于\(k_i\)的宠物的右端点扔入一个小根堆里。
接下来,我们把堆中小于\(k_i\)的元素,即右端点小于\(k_i\)的宠物全部弹掉,因为\(k_i\)是递增的,所以现在小于\(k_i\),以后也一定小于\(k_i\)。
然后贪心,把堆中前\(k_i\)个元素弹掉(因为弹掉右端点越小的宠物肯定越优,显然),如果元素不足\(k_i\)
个,输出\(0\)。
否则,在枚举完\(k_i\)后,输出\(1\)。
具体实现过程中不要忘记剪枝,详见代码:
#include<bits/stdc++.h>
#define Tp template<typename Ty>
#define Ts template<typename Ty,typename... Ar>
#define Reg register
#define RI Reg int
#define Con const
#define CI Con int&
#define I inline
#define W while
#define N 500000
#define M 200000
#define Gmin(x,y) (x>(y)&&(x=(y)))
#define Gmax(x,y) (x<(y)&&(x=(y)))
#define INF 1e9
using namespace std;
int n,m,a[M+5],suf[M+5];
struct Pet {int l,r;I bool operator < (Con Pet& t) Con {return l<t.l;}}s[N+5];
priority_queue<int,vector<int>,greater<int> > q;
class FastIO
{
private:
#define FS 100000
#define tc() (A==B&&(B=(A=FI)+fread(FI,1,FS,stdin),A==B)?EOF:*A++)
#define tn (x<<3)+(x<<1)
#define D isdigit(c=tc())
char c,*A,*B,FI[FS];
public:
I FastIO() {A=B=FI;}
Tp I void read(Ty& x) {x=0;W(!D);W(x=tn+(c&15),D);}
Ts I void read(Ty& x,Ar&... y) {read(x),read(y...);}
}F;
int main()
{
RI Qtot,i,p,t,tot,flag,Min=INF,Max=-INF;
for(F.read(n),i=1;i<=n;++i) F.read(s[i].l,s[i].r),Gmin(Min,s[i].l),Gmax(Max,s[i].r);//求出最小的左端点和最大的右端点,用于剪枝
sort(s+1,s+n+1),F.read(Qtot);W(Qtot--)//预处理时将每个宠物按左端点排序
{
for(F.read(m),i=1;i<=m;++i) F.read(a[i]);for(sort(a+1,a+m+1),suf[m+1]=0,i=m;i;--i) suf[i]=a[i]+suf[i+1];//将询问排序,求后缀和用于剪枝
for(flag=(Min<=a[1]&&Max>=a[m]&&suf[1]<=n),p=1,tot=n,i=1;i<=m&&flag;++i)//先判断是否肯定不合法,然后枚举询问
{
W(p<=n&&s[p].l<=a[i]) q.push(s[p++].r);W(!q.empty()&&q.top()<a[i]) --tot,q.pop();//将左端点小于当前询问的宠物的右端点加入小根堆,将堆中小于当前询问的宠物弹出
W(!q.empty()&&a[i]) --a[i],--tot,q.pop();flag=(!a[i]&&tot>=suf[i+1]);//弹出堆中元素,若元素个数不足,则可直接判断无解
}puts(flag?"1":"0");W(!q.empty()) q.pop();//输出答案,然后记得清空堆
}return 0;
}
\(T2\):【HHHOJ198】觉(点此看题面)
一如既往地看不懂 \(T2\)题目。。。(突然发现最近每次比赛\(T2\)都会挂)
但是\(R_i=P_i=S_i\)这送的\(5\)分还是拿到了,输出\(\frac43n\)即可,代码略。
\(T3\):【HHHOJ199】少女觉的第三只眼(点此看题面)
一道拿来手玩+玄学调参的交互题。
\(Subtask233\)
我的做法是一直向左移动,移到角落里。
然而据说不动就可以了?
\(Subtask0\)
不难发现右上角始终没有子弹,移过去即可。
\(Subtask1\)
如果全返回\(1\),则有\(0\sim5\)分不等。
\(Subtak2\sim Subtask3\)
爆\(0\)。
代码如下:
#include"Eye.h"
int operate_Test(int N,double x[],double y[],double r[],double X,double Y,int T,int D_ti) {return 1;}//移动到角落里,然而似乎原地不动即可
int operate_Cirno(int N,double x[],double y[],double r[],double X,double Y,int T,int D_ti) {return T<36?2:3;}//移到右上角
int operate_Shinmyoumaru(int N,double x[],double y[],double r[],double X,double Y,int T,int D_ti) {return 1;}//直接返回1,有0~5分不等
int operate_Suwako(int N,double x[],double y[],double r[],double X,double Y,int T,int D_ti) {}//爆0
int operate_Sagume(int N,double x0[],double y0[],double x[],double y[],double r[],double X,double Y,int T,int D_ti) {}//爆0
【HHHOJ】ZJOI2019模拟赛(十四)03.12 解题报告的更多相关文章
- [NOI.AC 2018NOIP模拟赛 第三场 ] 染色 解题报告 (DP)
题目链接:http://noi.ac/contest/12/problem/37 题目: 小W收到了一张纸带,纸带上有 n个位置.现在他想把这个纸带染色,他一共有 m 种颜色,每个位置都可以染任意颜色 ...
- 「2018-12-02模拟赛」T1 最短路 解题报告
1.最短路(short.pas/cpp/in/out) 问题描述: 小 C 终于被小 X 感动了,于是决定与他看电影,然而小 X 距离电影院非常远,现在假设 每条道路需要花费小 X 的时间为 1,由于 ...
- 「2018-11-05模拟赛」T5 传送机 解题报告
5.传送机(sent.*) 问题描述: 黄黄同学要到清华大学上学去了.黄黄同学很喜欢清华大学的校园,每次去上课时总喜欢把校园里面的每条路都走一遍,当然,黄黄同学想每条路也只走一遍. 我们一般人很可能对 ...
- 「模拟赛 2018-11-02」T3 老大 解题报告
老大 题目描述 因为 OB 今年拿下 4 块金牌,学校赞助扩建劳模办公室为劳模办公室群,为了体现 OI 的特色,办公室群被设计成了树形(n 个点 n − 1 条边的无向连通图),由于新建的办公室太大以 ...
- 「2018-12-02模拟赛」T3 约束排列 解题报告
3.约束排列(place.pas/cpp/in/out) 问题描述: 给出 n 个互不相同的小写字母,表示出现的字符类型,以及 k 个约束关系: .....,表示 ai 必须出现在 bi 前面(ai, ...
- NOI.AC NOIP模拟赛 第四场 补记
NOI.AC NOIP模拟赛 第四场 补记 子图 题目大意: 一张\(n(n\le5\times10^5)\)个点,\(m(m\le5\times10^5)\)条边的无向图.删去第\(i\)条边需要\ ...
- 【模拟题(电子科大MaxKU)】解题报告【树形问题】【矩阵乘法】【快速幂】【数论】
目录: 1:一道简单题[树形问题](Bzoj 1827 奶牛大集会) 2:一道更简单题[矩阵乘法][快速幂] 3:最简单题[技巧] 话说这些题目的名字也是够了.... 题目: 1.一道简单题 时间1s ...
- NOIP2012普及组 (四年后的)解题报告 -SilverN
本章施工仍未完成 现在的时间是3.17 0:28,我困得要死 本来今天(昨天?)晚上的计划是把整个四道题的题解写出来,但是到现在还没写完T4的高效算法,简直悲伤. 尝试了用floyd写T4,终于大功告 ...
- 【第40套模拟题】【noip2011_mayan】解题报告【map】【数论】【dfs】
目录:1.潜伏者 [map] 2.Hankson的趣味题[数论]3.mayan游戏[dfs] 题目: 1. 潜伏者(spy.pas/c/cpp)[问题描述]R 国和S 国正陷入战火之中,双方都互派间谍 ...
随机推荐
- ADO执行事务
在工作中遇到,需要批量提交的.在sql2008以后有表变量定义,可以实现.但个人比较习惯用C#,就有下面代码,直接上代码... using (SqlConnection conn = new SqlC ...
- junit使用中的一些问题
之前开发过程中的测试,不是使用main方法,就是启动项目调用地址,尤其是后者,测试起来非常不方便,今天配置了下junit,中间遇到些问题,记录如下. 首先下载spring-test.jar包和juni ...
- git使用笔记-日志
1.查看函数的历史修改 git log -L :git_deflate_bound:zlib.c2.查看HEAD的所有记录 git reflog $ git reflog 1a410ef HEAD@{ ...
- C++中遇到的各种小问题
lpcwstr类型问题 在使用VS2010开发C++程序时,由于系统默认字符集是unicode字符集,造成与早期的字符串格式不兼容问题 ①Properties — Configuration Prop ...
- eureka的一点细节
第二部分粗略的过一遍,还是有些模糊,再来相对系统的看一下: ---------------------------------------------------------------------- ...
- 使用git将自己的代码同时保存在多个代码托管平台
现在有很多代码管理平台,例如github,oschina-git,coding.net,我的网速有时候访问github比较慢.这时候我使用国内的.但是只使用一家我已不知道我的代码在他们的管理平台是否足 ...
- 批量处理标签属性中document.getElementsByName()的替代方案
背景 今天在逛知乎时候,看到一个JavaScript方面的问题: 最近在学习JavaScript DOM,就好奇地查阅资料,以及请教学长,得到下面解答: http://www.w3help.org/z ...
- vsftpd配置文件详解 ---配置解说
vsftpd配置文件详解 1.默认配置: 1>允许匿名用户和本地用户登陆. anonymous_enable=YES local_enable=YES 2>匿名 ...
- Razor,aspx的占位控件(母版页)
1.razor: 母版页中:@*类似master的占位控件*@ @RenderSection("scripts", required: false) 部分页中: @section ...
- thinkphp中怎么判断是手机端访问还是pc端访问?
function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) r ...