T1:

不难想到贪心,但是怎么贪,他有两个限制条件,所以不是很好搞,所以用一个类似与wqs二分的思路我可能在口胡,因为你肯定要把最小的给删掉,所以你限定一个x或y,然后在选出另一个限制,所以要同时维护删$k$个$x$最小和$y$最小,一个排序预处理,一个用堆维护即可。注意边界问题,思考实际意义。

 #include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+;
int a[N];
priority_queue<int> qx,qy;
struct node{
int x,y;
bool friend operator < (node a,node b){
return a.x==b.x?(a.y<b.y):(a.x<b.x);
}
}p[N];
signed main(){
int T;
scanf("%lld",&T);
while(T--){
int n,m;
scanf("%lld%lld",&n,&m);
priority_queue<int,vector<int>,greater<int> >q;
for(int i=;i<=n;++i){
scanf("%lld%lld",&p[i].x,&p[i].y);
}
sort(p+,p+n+);
for(int i=m+;i<=n;++i) q.push(p[i].y);
int ans=p[m+].x*q.top();
for(int i=m;i>=;--i){
q.pop();q.push(p[i].y);
ans=max(ans,p[i].x*q.top());
}
printf("%lld\n",ans);
}
}

d

T2:

考试时啥都没想到,连那个最小联通块都没分析出来是什么。通过手玩可以发现他所说的最小联通块就是所有点的LCA到每个节点的链,然后对于每一个询问值,只要查他的前趋后继即可,思路类似于平衡树那道题,宠物收养所,然后树上每条链其实就是树上的一段区间,用主席树维护即可,具体方法为查询问的值在区间的排名$rk$(准确来说是小于等于它的数的个数),然后前趋排名为$rk$,后继为$rk+1$,在查区间第k大即可,注意特判没有前趋或后继的情况。

特别注意在线不要只把值赋给LCA,$p[1]$也要改。

调了一下午 kuku

 #include<bits/stdc++.h>
using namespace std;
const int N=1e5+;
struct Chairman_Tree{
int l,r,size;
}tr[N*];
int first[N],nex[N<<],to[N<<],tot,fr[N<<];
void add(int a,int b){
to[++tot]=b,nex[tot]=first[a],first[a]=tot,fr[tot]=a;
}
int fa[N][],d[N],root[N*],p[N*],a[N];
void bfs(){
queue<int> q;
q.push();
d[]=;
while(q.size()){
int x=q.front();q.pop();
for(int i=first[x];i;i=nex[i]){
int y=to[i];
if(d[y]) continue;
d[y]=d[x]+;
fa[y][]=x;
for(int j=;j<=;++j) fa[y][j]=fa[fa[y][j-]][j-];
q.push(y);
}
}
}
int LCA(int x,int y){
if(d[x]>d[y]) swap(x,y);
for(int i=;i>=;--i) if(d[fa[y][i]]>=d[x]) y=fa[y][i];
if(x==y) return x;
for(int i=;i>=;--i) if(fa[y][i]!=fa[x][i]) y=fa[y][i],x=fa[x][i];
return fa[x][];
}
int cnt;
void insert(int &x,int v,int l,int r,int pos){
x=++cnt;
tr[x]=tr[v];
tr[x].size++;
if(l==r) return ;
int mid=(l+r)>>;
if(pos<=mid) insert(tr[x].l,tr[v].l,l,mid,pos);
else insert(tr[x].r,tr[v].r,mid+,r,pos);
}
int maxn=;
void dfs(int x){//cout<<"x=="<<x<<endl;
// cout<<x<<" "<<fa[x][0]<<" "<<a[x]<<endl;
insert(root[x],root[fa[x][]],,maxn,a[x]);
for(int i=first[x];i;i=nex[i]){
int y=to[i];
if(y==fa[x][]) continue;
dfs(y);
}
}
int query(int u,int v,int l,int r,int val){
if(r<=val) return tr[v].size-tr[u].size;
int mid=(l+r)>>;
int als=tr[tr[v].l].size-tr[tr[u].l].size;
if(val<=mid) return query(tr[u].l,tr[v].l,l,mid,val);
else return als+query(tr[u].r,tr[v].r,mid+,r,val);
}
int kth(int u,int v,int l,int r,int rk){
if(l==r) return l;
int mid=(l+r)>>;
int als=tr[tr[v].l].size-tr[tr[u].l].size;
if(rk<=als) return kth(tr[u].l,tr[v].l,l,mid,rk);
else return kth(tr[u].r,tr[v].r,mid+,r,rk-als);
} int find(int x,int fa,int val){
int tmp=query(root[fa],root[x],,maxn,val);
int fr=tmp,aft=tmp+;
// cout<<"tmp=="<<tmp<<endl;
int frv=0x7fffffff,aftv=0x7fffffff;
// if(aft>d[x]-d[fa]) cout<<"HHH"<<endl;
int res=0x7fffffff;
if(fr>) frv=kth(root[fa],root[x],,maxn,fr),res=min(res,abs(frv-val));
if(aft<=tr[root[x]].size-tr[root[fa]].size) aftv=kth(root[fa],root[x],,maxn,aft),res=min(res,abs(aftv-val));
// cout<<"x=="<<x<<" fa=="<<fa<<" val=="<<val<<endl;
// cout<<"fr=="<<fr<<" aft=="<<aft<<endl;
// cout<<"frv=="<<frv<<" aftv=="<<aftv<<endl;
return res;
} int main(){
int n,q,type;
scanf("%d%d%d",&n,&q,&type);
for(int i=;i<=n;++i) {scanf("%d",&a[i]);maxn=max(maxn,a[i]);}
for(int i=;i<n;++i){
int x,y;
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
bfs();
// for(int i=1;i<=tot;++i) cout<<fr[i]<<" "<<to[i]<<endl;
dfs();
int lastans=;
for(int i=;i<=q;++i){
int rvalue,k;
scanf("%d%d",&rvalue,&k);
scanf("%d",&p[]);
int lca=p[]=(p[]-+lastans*type)%n+;
for(int j=;j<=k;++j){
scanf("%d",&p[j]);
p[j]=(p[j]-+lastans*type)%n+;
lca=LCA(lca,p[j]);
}
// cout<<"Lca=="<<lca<<endl;
int ans=0x7fffffff;
for(int j=;j<=k;++j) ans=min(ans,find(p[j],fa[lca][],rvalue));
lastans=ans;
printf("%d\n",ans);
}
}
/*
3 1 0
18 99 59
1 2
2 3
15 3 2 2 3
*/

e

T3:不会,鸽了

CSP-S模拟68 题解的更多相关文章

  1. [CQOI2012]模拟工厂 题解(搜索+贪心)

    [CQOI2012]模拟工厂 题解(搜索+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327574 链接题目地址:洛谷P3161 BZOJ P26 ...

  2. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  3. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  4. HGOI NOIP模拟4 题解

    NOIP国庆模拟赛Day5 题解 T1 马里奥 题目描述 马里奥将要参加 NOIP 了,他现在在一片大陆上,这个大陆上有着许多浮空岛,并且其中一座浮空岛上有一个传送门,马里奥想要到达传送门从而前往 N ...

  5. 10.8 wtx模拟题题解

    填坑 orz w_x_c_q w_x_c_q的模拟赛(150pts,炸了) money 题目背景: 王小呆又陷入自己的梦里.(活在梦里...) 题目描述: 王小呆是一个有梦想的小菜鸡,那就是赚好多好多 ...

  6. [NOIP模拟13]题解

    A.矩阵游戏 其实挺水的? 考场上根本没有管出题人的疯狂暗示(诶这出题人有毛病吧这么简单的东西写一大堆柿子),而且推公式能力近乎没有,所以死掉了. 很显然乘法有交换率结合率所以操作顺序对最终结果没什么 ...

  7. 「题解」NOIP模拟测试题解乱写II(36)

    毕竟考得太频繁了于是不可能每次考试都写题解.(我解释个什么劲啊又没有人看) 甚至有的题目都没有改掉.跑过来写题解一方面是总结,另一方面也是放松了. NOIP模拟测试36 T1字符 这题我完全懵逼了.就 ...

  8. 【洛谷】xht模拟赛 题解

    前言 大家期待已久并没有的题解终于来啦~ 这次的T1和HAOI2016撞题了...深表歉意...表示自己真的不知情... 天下的水题总是水得相似,神题各有各的神法.--<安娜·卡列妮娜> ...

  9. 10.9 guz模拟题题解

    感谢@guz 顾z的题题解 考试共三道题,其中 第一题help共10个测试点,时间限制为 1000ms,空间限制为 256MB. 第二题escape共20个测试点,时间限制为1000ms2000ms, ...

随机推荐

  1. spark集群安装并集成到hadoop集群

    前言 最近在搞hadoop+spark+python,所以就搭建了一个本地的hadoop环境,基础环境搭建地址hadoop2.7.7 分布式集群安装与配置 本篇博客主要说明,如果搭建spark集群并集 ...

  2. 部署java应用的几种方式

    J2EE应用 该应用根目录下有好多文件夹和以jsp结尾的文件 部署时,需要在tomcat的conf目录下的server.xml文件中添加上<Context path="/" ...

  3. MySQL NULL 使用带来的坑

    MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...

  4. (二)Struts.xml文件详解

    一.Struts.xml文件 Struts.xml文件构成 如图,<Struts>标签内共有5个子标签. 1.1 struts-default.xml 查看Struts的内容可知,Stru ...

  5. Windows群集之NLB【转】

    本文转自:http://www.talkwithtrend.com/Article/31746 网络负载平衡群集(Network Load balancing) 在Internet快速发展的今天,为了 ...

  6. Redis 测试 数据类型

  7. MGB的生成代码解析

    目录 @ 问题描述 文字描述 问题是在我刚刚学习MyBatis逆向工程时出现的,我发现使用Example是可以创建两个Criteria对象,并且两个对象也都可以添加条件,但是在运行过程中只会执行第一次 ...

  8. navicat 控制mysql某个数据库只属于某个用户

    1.使用navicat 1)首先使用root用户新建连接 2)新建mysql用户 3)点击权限,选择添加权限,出现MySQL中已存在的数据库列表,选择你要为该新建用户开放的数据库,此处选择“maiba ...

  9. HighChart 不同颜色(柱状图)

    var chart = new Highcharts.Chart({ chart: { plotBackgroundColor: null, plotBorderWidth: null, backgr ...

  10. 转:基于Maven管理的JavaWeb项目目录结构参考

    通常在创建JavaWeb项目时多多少少都会遵循一些既定的比较通用的目录结构,下面分享一张基于Maven管理的JavaWeb项目目录结构参考图: 上图仅是参考,不同项目不同团队都有自己的约定和规范. 个 ...