ZOJ Monthly, January 2019 Little Sub and his Geometry Problem ZOJ4082(模拟 乱搞)
在一次被自己秀死...
题目: 给出N,K, Q;
给出一个N*N的矩阵 , 与K个特殊点 , 与Q次查询 , 每次查询给出一个C , 问 在这个N*N矩阵中 , 有多少的点是满足这样的一个关系

问题转换就是说 , 当前的坐标X,Y , 满足一个(X+Y)*cnt - sumxy ; 的关系 , cnt 是指在X,Y这个位置 , 有多少个特殊点会被计算到 , sumXY是满足条件的特殊点的横纵坐标的和 ,;
分析: 经过一些分析后 ,你可以得出一个这样的结论 , 在我查询C 的时候 ,对于放程(X+Y)*cnt - sumxy==C ,随着X的增大 , Y是不断的被减小 , 也就是说 假设我在(X1,Y1 ) 与(X2,Y2) X1<X2是可以满足的 , 那么我们一定是可以得出 Y1<Y2 , 无论X1到X2之间是有多少的特殊点都是如此 , 为什么吗呢? 对于X1 ,X2 如果在X2时满足的特殊点是多的 , 那Y2是不是就一定比Y1要小 ; 所以我们可以依据这样的特性 ,我们枚举一遍(X=1;X<=N ) 这个是当前点的横坐标 ,我同时也枚举Y , 注意 ,因为Y是不会增加的所以 可以把Y看出是指针 , 指向当前X拥有的最大Y;
复制度也就是Q(N+Y+K) Q就10 ,可以过
现在来说说为什么被秀死 , DUG了许久 PE , 说是格式错误,最终找到 ,原来是puts("") 与puts(" ") , 我为了好看习惯性的在里面打了个空格 ,。。。我日..
#include<bits/stdc++.h>
using namespace std ;
#define N 100001
#define ll long long
int n,k;
ll Ysum[N],Ycout[N];
ll ANS[];
struct no
{
int x,y;
}a[N];
bool cmp(no a , no b)
{
if(a.x!=b.x)
return a.x<b.x;
return a.y<b.y;
} ll solve(ll C)
{
memset(Ysum,,sizeof(Ysum));
memset(Ycout,,sizeof(Ycout));
int id=;
ll Y=n;
ll cnt=,sum=; int num=;
for(ll X= ; X<=n ; X++)
{
while(a[id].x<=X && id<=k)
{
if(Y>=a[id].y)
{
cnt++;
sum+=a[id].x+a[id].y;
Ysum[a[id].y]+=a[id].x+a[id].y;
Ycout[a[id].y]++;
}
id++;
}
while((X+Y)*cnt-sum>C)
{
cnt-=Ycout[Y];///有了这些数组我才能知道我CNT , sum应该减去什么
sum-=Ysum[Y];
Y--;
} if((X+Y)*cnt-sum==C)
num++;
}
return num;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&k);
for(int i= ; i<=k ; i++)
{
scanf("%d%d",&a[i].x , &a[i].y);
}
sort(a+,a++k,cmp);
int Q; scanf("%d",&Q);
ll sum=; ll C; for(int i= ; i<=Q ; i++)
{
scanf("%lld",&C);
if(i!=) putchar(' ');
printf("%lld",solve(C));
}
puts("");
}
return ;
}
ZOJ Monthly, January 2019 Little Sub and his Geometry Problem ZOJ4082(模拟 乱搞)的更多相关文章
- ZOJ Monthly, January 2019 Little Sub and his Geometry Problem 【推导 + 双指针】
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5861 Little Sub and his Geometry Prob ...
- ZOJ Monthly, January 2019
A: Little Sub and Pascal's Triangle Solved. 题意: 求杨辉三角第n行奇数个数 思路: 薛聚聚说找规律,16说Lucas 答案是 $2^p \;\;p 为 n ...
- ZOJ Monthly, January 2019 Little Sub and Isomorphism Sequences 【离线离散化 + set + multiset】
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5868 Little Sub and Isomorphism Seque ...
- ZOJ Monthly, January 2019 I Little Sub and Isomorphism Sequences(set 妙用) ZOJ4089
写这篇博客来证明自己的愚蠢 ...Orz 飞机 题意:给定你个数组,以及一些单点修改,以及询问,每次询问需要求得,最长的字串长度,它在其他位置存在同构 题解:经过一些奇思妙想后 ,你可以发现问题是传 ...
- ZOJ Monthly, January 2018 训练部分解题报告
A是水题,此处略去题解 B - PreSuffix ZOJ - 3995 (fail树+LCA) 给定多个字符串,每次询问查询两个字符串的一个后缀,该后缀必须是所有字符串中某个字符串的前缀,问该后缀最 ...
- matrix_2015_1 138 - ZOJ Monthly, January 2015
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3844 第一个,n个数,每次操作最大数和最小数都变成他们的差值,最后n个数相 ...
- ZOJ Monthly, January 2018
A 易知最优的方法是一次只拿一颗,石头数谁多谁赢,一样多后手赢 #include <map> #include <set> #include <ctime> #in ...
- ZOJ Monthly, January 2018 Solution
A - Candy Game 水. #include <bits/stdc++.h> using namespace std; #define N 1010 int t, n; int a ...
- ZOJ Monthly, January 2019-Little Sub and Pascal's Triangle
这个题的话,它每行奇数的个数等于该行行号,如果是0开始的,就该数的二进制中的1的个数,设为k,以它作为次数,2k就是了. #include <stdio.h> int main() { i ...
随机推荐
- Luogu 4900 食堂
一道把很多东西放在一起的练手题. $$\sum_{i = A}^{B}\sum_{j = 1}^{i}\left \{ \frac{i}{j} \right \} = \sum_{i = A}^{B} ...
- [GO]不同作用域的同名变量
package main import "fmt" var a byte //这是一个全局变量 func main() { var a int //这是一个局部变量 //1.作用域 ...
- (回溯法)ip地址的合理性
题目: 给定一个只包含数字的字符串,通过返回所有可能有效的IP地址组合来恢复它. 例如: 给定“”, return [“255.255.11.135”,“255.255.111.35”]. (顺序无所 ...
- ios7适配--navgationbar遮住下面view的处理
3down votefavorite Have you guys stumbled up on this issue ? Basically in iOS 7 Navigation Control ...
- [转]sessionStorage()和localStorage()的用法
JS的本地保存localStorage.sessionStorage用法总结: 1. localStorage.sessionStorage是Html5的特性,IE7以下浏览器不支持 为什么要掌握lo ...
- C#ADO.NET基础一
简介 使用SQLite进行讲解 1.基础类: SQLiteConnection 连接数据库 SQLiteCommand 执行命令(增,删,改,查),或存储过程 SQLiteDataReader 读取查 ...
- SQL/T-SQL实例参考-2
对多关联查询,查询多中的记录,但是返回一的结果集 子查询语法 --一对多关联查询,查询多中的记录,但是返回一的结果集 SELECT C.* FROM ( SELECT A.BasicID FROM [ ...
- 全新的membership框架Asp.net Identity
在Asp.net上,微软的membershop框架经历了Asp.net membership到Asp.net simple membership,再到现在的Asp.net Identity. 每一次改 ...
- Jquery Plugins Jquery Validate
Jquery Validate 一.什么是Jquery Validate: jQuery Validate 插件为表单提供了强大的验证功能. 二.常用值: 1 required:true 必须输入 ...
- 「BZOJ 1876」「SDOI 2009」SuperGCD「数论」
题意 求\(\gcd(a, b)\),其中\(a,b\leq10^{10000}\) 题解 使用\(\text{Stein}\)算法,其原理是不断筛除因子\(2\)然后使用更相减损法 如果不筛\(2\ ...