2019 南京网络赛A
南京网络赛自闭现场
https://nanti.jisuanke.com/t/41298
二维偏序经典题型
二维前缀和!!!
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define sc(x) scanf("%lld",&x);
int T;
#define P pair<int,int>
#define fi first
#define se second
#define maxn 1000000+10
int n,m,p;
int A[maxn];
int B[maxn];
int C[maxn];
int D[maxn];
int Ans[maxn];
map<int,int> mp;
struct Q{
int x,y,z,w;
}q[maxn];
P E[maxn];
int f(int x)
{
int ans=;
while(x)
{
ans+=(x%);
x/=;
}
return ans;
}
int cal(int x,int y)
{
int s=n*n;
int _t=(n+)/;
if(x==_t&&y==_t){
//return s;
return f(n*n);
}
int _a=max(abs(x-_t),abs(y-_t));///距中心点距离
int _x=(_a*+);
int sx=_t-_a;
int sy=_t-_a;
int ck=_a+_t-;///出口
// cout<<endl<<x<<" "<<y<<" "<<ck<<" ck "<<_a<<" "<<_t<<endl;
s-=(_x-)*(_x-);///减去内圈
if(y-_t==_a&&x<=ck) ///顶行
{
s-=(ck-x);
//cout<<endl<<"F"<<x<<' '<<y<<' '<<s<<' '<<f(s)<<endl; return f(s);
}
else
{
s-=(_x-);
//cout<<s<<" "<<_x<<" "<<y<<endl;
if(_t-x==_a)
{
s-=_x+sx-y-;
// cout<<s<<endl; return f(s);
}
else
{
s-=_x-; if(_t-y==_a)
{
s-=x-sx-;
return f(s);
}
else
{
s-=_x-;
if(x-_t==_a)
{ s-=y-sy-;
return f(s);
}
}
} } }
int V[maxn];
void add(int x,int val)
{
while(x<=maxn){
V[x]+=val;
x+=(x&-x);
}
}
int get(int x)
{
// if(x==0)return 0;
int ans=;
//ans+=V[0];
while(x){
ans+=V[x];
x-=(x&-x);
}
return ans;
}
bool cmp(int x,int y)
{
if(A[x]==A[y])return B[x]<B[y];
return A[x]<A[y];
}
void init()
{
for(int i=;i<maxn;i++){
Ans[i]=V[i]=;
mp.clear();
}
}
signed main()
{
sc(T); while(T--)
{
init();
sc(n);
sc(m);
sc(p);
int a,b,c,d;
for(int i=; i<=m; i++)
{
sc(A[i]);
sc(B[i]);
C[i]=i;
D[i]=cal(A[i],B[i]);
mp[D[i]]=;
}
sort(C+,C+m+,cmp);
int _k=;
for(int i=;i<p;i++){
sc(a);sc(b);sc(c);sc(d);
q[i].x=a;
q[i].y=b;
q[i].z=c;
q[i].w=d;
E[_k++]=P(a-,b-);
E[_k++]=P(a-,d);
E[_k++]=P(c,b-);
E[_k++]=P(c,d);
}
sort(E,E+_k);
int sz=unique(E,E+_k)-E;
int j=;
for(int i=;i<sz;){
//cout<<i<<sz<<'\n';
while(j<=m&&E[i].fi>=A[C[j]]){
add(B[C[j]],D[C[j]]);
j++;
}
Ans[i]=get(E[i].se);
// Ans1[i]=get(E[i].se-1);
i++;
} for(int i=;i<p;i++){
P x=P(q[i].x-,q[i].y-);
P y=P(q[i].z,q[i].w);
P w=P(q[i].x-,q[i].w);
P z=P(q[i].z,q[i].y-);
int an=Ans[lower_bound( E,E+sz,x)-E];
//cout<<x.fi<<' '<<an<<'\n';
an-=Ans[lower_bound( E,E+sz,w)-E];
an-=Ans[lower_bound( E,E+sz,z)-E];
cout<<Ans[lower_bound(E,E+sz,y)-E]+an<<'\n';
// cout<<Ans[lower_bound(E,E+sz,y)-E]<<'\n';
} }
}
2019 南京网络赛A的更多相关文章
- Robots 2019南京网络赛 (概率dp)
Robots \[ Time Limit: 1000 ms \quad Memory Limit: 262144 kB \] 题意 有一个机器人要从 \(1\) 点走到 \(n\) 点,每走一步都需要 ...
- [2019南京网络赛D题]Robots
题目链接 2019.9.2更新 第二天睡醒想了想发现好像搜一遍就可以过,赛时写的花里胡哨的还错了,太菜了QAQ #include<bits/stdc++.h> using namespac ...
- The Preliminary Contest for ICPC Asia Nanjing 2019/2019南京网络赛——题解
(施工中……已更新DF) 比赛传送门:https://www.jisuanke.com/contest/3004 D. Robots(期望dp) 题意 给一个DAG,保证入度为$0$的点只有$1$,出 ...
- 2019南京网络赛E:K Sum
Description: 定义函数 \[ f _n (k) = \sum _{l _1 = 1} ^n \sum _{l _2 = 1} ^n \cdots \sum _{l _k = 1} ^n \ ...
- 2019南京网络赛 D Robots 期望dp
题目传送门 题意:给出一幅有向无环图,保证只有1入度为0,n出度为0,求问一个机器人从1出发,每天等概率的走到相邻点或者留在原地,问到达n点的代价.每天的代价都不一样,就是天数(第x天走一步的代价就是 ...
- 2019 南京网络赛 B super_log 【递归欧拉降幂】
一.题目 super_log 二.分析 公式很好推出来,就是$$a^{a^{a^{a^{...}}}}$$一共是$b$个$a$. 对于上式,由于指数太大,需要降幂,这里需要用到扩展欧拉定理: 用这个定 ...
- HDU 4751 Divide Groups (2013南京网络赛1004题,判断二分图)
Divide Groups Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- HDU 4750 Count The Pairs (2013南京网络赛1003题,并查集)
Count The Pairs Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others ...
- HDU 4758 Walk Through Squares (2013南京网络赛1011题,AC自动机+DP)
Walk Through Squares Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Oth ...
随机推荐
- [转帖]linux /proc目录下的文件为何无法用vi编辑保存
linux /proc目录下的文件为何无法用vi编辑保存 https://blog.51cto.com/xlogin/1216914 学习一下 之前看过书 这一点 没太仔细看.. xlogin关注8人 ...
- 7大python 深度学习框架的描述及优缺点绍
Theano https://github.com/Theano/Theano 描述: Theano 是一个python库, 允许你定义, 优化并且有效地评估涉及到多维数组的数学表达式. 它与GPUs ...
- 洛谷 P1194 飞扬的小鸟 题解
题面 这道题是一道隐藏的比较深的DP(我太蒟蒻了!) 设f[i][j]表示到第i列时高度为j的最少步数是多少: 求上升时的方案就是一个完全背包!,求下降时的方案就是一个01背包: 然后处理边界就能A掉 ...
- 查找元素在list中的位置以及折半查询
问题 查找某个值在list中的位置 解决思路 能够用折半查询的方法解决此问题. 解决(Python) #! /usr/bin/env python #coding:utf-8 #折半查找某个元素在li ...
- Jquery复习(七)之尺寸
jQuery 尺寸 方法 jQuery 提供多个处理尺寸的重要方法: width() height() innerWidth() innerHeight() outerWidth() outerHei ...
- javascript伪链接(javascript:)
前言 我们经常会看到“javascript:”这种情况,他经常会用在两种属性身上,href和onclick等事件处理器,接下里我们主要说用在onclick等事件处理器上的情况,在href中的应用在之前 ...
- mysql复制表结构,复制表数据
MYSQL 复制表 show create table table_name:查看表的建表语句.该语句包含了原数据表的结构,索引等. 使用 SHOW CREATE TABLE 命令获取创建数据表(CR ...
- java学习笔记(4)多态
一.多态 --------------------------------------------- 1.定义:某一类事物的多种存在形态 例如:动物中猫,狗. 猫这个对象对应的类型是猫类型 猫 x ...
- 关于Unsupported major.minor version 52.0报错问题解决方案
目录 1.问题描述2.问题分析3.解决方案步骤一:删除JDK1.7版本步骤二:导入JDK1.8版本步骤三:将新的JDK1.8引入到工程中4.总结1.问题描述在启动项目工程中,当编译class文件的时候 ...
- 终于明白上一篇的一顿误操作是什么了,是$,不是S !!!!!
1,在命令行中输入export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin这样可以保证命令行命令暂时可以使用.命令执行完之后先不要关闭终端2. ...