南京网络赛自闭现场

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的更多相关文章

  1. Robots 2019南京网络赛 (概率dp)

    Robots \[ Time Limit: 1000 ms \quad Memory Limit: 262144 kB \] 题意 有一个机器人要从 \(1\) 点走到 \(n\) 点,每走一步都需要 ...

  2. [2019南京网络赛D题]Robots

    题目链接 2019.9.2更新 第二天睡醒想了想发现好像搜一遍就可以过,赛时写的花里胡哨的还错了,太菜了QAQ #include<bits/stdc++.h> using namespac ...

  3. The Preliminary Contest for ICPC Asia Nanjing 2019/2019南京网络赛——题解

    (施工中……已更新DF) 比赛传送门:https://www.jisuanke.com/contest/3004 D. Robots(期望dp) 题意 给一个DAG,保证入度为$0$的点只有$1$,出 ...

  4. 2019南京网络赛E:K Sum

    Description: 定义函数 \[ f _n (k) = \sum _{l _1 = 1} ^n \sum _{l _2 = 1} ^n \cdots \sum _{l _k = 1} ^n \ ...

  5. 2019南京网络赛 D Robots 期望dp

    题目传送门 题意:给出一幅有向无环图,保证只有1入度为0,n出度为0,求问一个机器人从1出发,每天等概率的走到相邻点或者留在原地,问到达n点的代价.每天的代价都不一样,就是天数(第x天走一步的代价就是 ...

  6. 2019 南京网络赛 B super_log 【递归欧拉降幂】

    一.题目 super_log 二.分析 公式很好推出来,就是$$a^{a^{a^{a^{...}}}}$$一共是$b$个$a$. 对于上式,由于指数太大,需要降幂,这里需要用到扩展欧拉定理: 用这个定 ...

  7. HDU 4751 Divide Groups (2013南京网络赛1004题,判断二分图)

    Divide Groups Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  8. HDU 4750 Count The Pairs (2013南京网络赛1003题,并查集)

    Count The Pairs Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others ...

  9. 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 ...

随机推荐

  1. Go语言的变量和常量(三)

    我想吐槽下网上的很多所谓的“零基础教程”,因为那根本不算零基础.就拿语言教程来说,一上来就说怎么定义变量的怎么算零基础呢?零基础应该是先告诉你啥叫变量. 所以我从不起零基础的标题.我这也不是教程,只是 ...

  2. C#模态对话框和非模态对话框

    模态对话框弹出窗口阻止调用窗口的所有消息响应.只有在弹出窗口结束后调用窗口才能继续.在模态窗口“关闭”后,可以读取模态窗口中信息,包括窗口的返回状态,窗口子控件的值. 非模态对话框可以在弹出窗口和调用 ...

  3. 安装VUE教程

    这段时间公司要准备开始用VUE,安装的过程中就遇到各种奇葩问题 1.Node.js安装 https://nodejs.org/en/download/ 安装好noedeJS然后继续安装下一步 3.执行 ...

  4. Vue.js路由管理器 Vue Router

    起步 HTML <script src="https://unpkg.com/vue/dist/vue.js"></script> <script s ...

  5. RabbitMQ入门教程(六):路由选择Routing

    原文:RabbitMQ入门教程(六):路由选择Routing 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog. ...

  6. 28、周末看电影(每周五自动从top250中随机选取三部电影,并将下载链接发到邮箱里)

      练习介绍   在第3关的一个课后练习里,我们爬取了指定电影的下载链接:在第6关的一个课后练习里,我们存储了豆瓣TOP250的榜单信息.   现在,我们完善这个程序,每周五在存储的榜单中,随机抽三部 ...

  7. loj 2778「BalticOI 2018」基因工程

    loj luogu 这题和NOI那道向量内积一个套路 首先考虑求两行的不同元素个数,可以转化成一个行向量\(a\)和列向量\(b\)相乘得到一个值.如果只有\(A,C\)两种字符,那么令对应权值\(A ...

  8. React Native 底部导航栏

    首先安装:npm install react-native-tab-navigator   然后再引入文件中    import TabNavigator from 'react-native-tab ...

  9. docker search - 搜寻镜像

    使用docker search 命令可以搜索docker hub官方仓库中的镜像. # docker search --help Usage: docker search [OPTIONS] TERM ...

  10. FastDFS 集群

    FastDFS 集群 克隆虚拟机 VMware修改mac 修改 ip地址 rm -f /etc/udev/rules.d/70-persistent-net.rules reboot Tracker集 ...