首页 > TAG信息列表 > HAOI2011

P2522 [HAOI2011]Problem b

【题意】    【分析】 首先我们可以简单容斥一下 设$calc(x,y)=\sum_{i=1}^{x}\sum_{j=1}^{y}[gcd(i,j)=1]$ 那么$ans=calc(b,d)-calc(a-1,d)-calc(c-1,b)+calc(a-1,c-1)$ 然后求$calc(x,y)$的套路就和P3455 [POI2007]ZAP-Queries一致了,就不再赘述了 【代码】 #include<bits/s

BZOJ2298: [HAOI2011]problem a(带权区间覆盖DP)

Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 1747  Solved: 876[Submit][Status][Discuss] Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低。”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每

P2520 [HAOI2011]向量

题目描述 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x,y)。 说明:这里的拼就是使得你选出的向量之和为(x,y) 输入输出格式 输入格式:   第一行数组组数t,(t<=50000) 接下来t行每行四个整数a,b,x

P2522 [HAOI2011]Problem b (莫比乌斯反演)

题目大意: 题目链接 n n n个询问,给定 a , b ,

BZOJ-2299 [HAOI2011]向量(裴蜀定理)

题目描述   给一对数 \(a,b\),可以任意使用 \((a,b),(a,-b),(-a,b),(-a,-b),(b,a),(b,-a),(-b,a),(-b,-a)\) 这些向量,问能不能拼出另一个向量 \((x,y)\)。   数据范围:\(T\leq 50000,-2\times 10^9\leq a,b,x,y\leq 2\times 10^9\)。 分析   \((a,b)\) 和 \((-a,-b)\) 这种方

[HAOI2011]向量(裴蜀定理)

注释:本章同余针对222。 题面 题意:见题面。 解决思路:考虑前四个向量(a,b),(a,−b),(−a,b),(−a,−b)\small (a,b), (a,-b), (-a,b), (-a,-b)(a,b),(a,−b),(−a,b),(−a,−b),设共取出n\small nn个向量,a,−a,b,−b\small a,-a,b,-ba,−a,b,−b的个数分别为xa1,xa2,yb1,yb2x

[HAOI2011]防线修建

\(\color{red}{为了护眼和更好的阅读体验,请您按住Ctrl键+滚轮将页面放大至120\%。QwQ}\) 洛谷链接 太懒了,懒得描述题面了。。。 凸包删点谁受得了,凸包就没法维护了,所以我们倒着看,把删点改为加点,每次加一个可能导致一些点从凸包上消失,但每个点消失一次就回不来了,所以每个点访问一

题解 【[HAOI2011]Problem c】

写在题解之前:感谢 \(\texttt{rfy}\) 大佬的讲解。 【题目描述】 给 \(n\) 个人安排座位,先给每个人一个 \(1\)~\(n\) 的编号,设第 \(i\) 个人的编号为 \(a_i\)(不同人的编号可以相同), 接着从第一个人开始,大家依次入座,第 \(i\) 个人来了以后尝试坐到 \(a_i\),如果 \(a_i\) 被占据了,就尝

BZOJ 2301. [HAOI2011]Problem b

  询问拆成四个,就像矩阵数点一样。每一个询问的形式为 $\sum_{i=1}^n\sum_{j=1}^m[(i,j)==k]$。$$\sum_{i=1}^n\sum_{j=1}^m[(i,j)==k]=\sum_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum_{j=1}^{\lfloor \frac{m}{k} \rfloor}[(i,j)==1]$$把 $\lfloor \dfrac{n}{k} \rfloor$ 换成 $

题解 P2522 【[HAOI2011]Problem b】

题目链接 Solution [HAOI2011]Problem b 题目大意:多组数据,给定\(a,b,c,d,k\),\(\sum_{i=a}^b\sum_{j=c}^d[gcd(i,j)=k]\) 莫比乌斯反演,容斥 解析: 这题相当于[POI2007]ZAP-Queries加强了一下,我们知道\(\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=k]\),简单容斥一下就可以知道答案了 #incl

[HAOI2011]Problem b

[HAOI2011]Problem b 题目大意 对于给出的\(n\)个询问,每次求有多少个数对 \((x,y)\),满足 \(a≤x≤b\),\(c≤y≤d\),且 \(\gcd(x,y) = k\),\(gcd(x,y)\) 函数为 \(x\) 和 \(y\) 的最大公约数。 输入格式 第一行一个整数 \(n\),接下来 \(n\) 行每行五个整数,分别表示\(a、b、c、d、k\) 输

【BZOJ2301】【HAOI2011】Problem B

题面 https://www.luogu.org/problem/P2522 题解 $Möbius\ inversion$的第一题,作为新的开始。 话说我们通常使用的式子是$$g(x)=\sum_{x|d}{f(d)} \Leftrightarrow f(x)=\sum_{i \ge 1}{\mu(i) g(i)}$$. 是一个相当明科但是很好理解的式子(卷积变点乘)我晕了,这么重要的式子竟然在《

luogu P2522 [HAOI2011]Problem b

题面   对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。   首先将问题转化一下,不妨设f[x][y]表示1<=i<=x,1<=j<=y,且gcd(i,j) = k ,数对(i,j)的个数; 那么由容斥原理,原问题可转化为 f[b][d] - f[a-1][d] - f[b][c-

BZOJ 2301: [HAOI2011]Problem b

2301: [HAOI2011]Problem b 思路: 莫比乌斯反演+整除分块 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespace std; #define y1 y11 #define fi first #define se second #define pi acos(-1.0) #define LL l

P2520 [HAOI2011]向量

传送门 显然要开始写式子 $k_1a+k_2b=x$ $k_3a+k_4b=y$ 首先如果上面两个式子只要有一个没有整数解就一定不合法 如果存在 $k_1+k_2=k_3+k_4$ 那就有解咯 考虑一下发现只要 $k_1+k_2$ 和 $k_3+k_4$ 奇偶性相同即可,因为比较少的那个可以补上 $(a,b)+(-a,-b)$ 考虑 $k_1+k_2$ 的关系

Luogu P2522 [HAOI2011]Problem b 莫比乌斯反演

设$f(d)=\sum_{i=1}^N\sum_{j=1}^M[gcd(i,j)==d],\\F(n)=\sum_{n|d}f(d)=\lfloor \frac{N}{n} \rfloor \lfloor \frac{M}{n} \rfloor$ 则$f(n)$ $=\sum_{n|d}\mu(\frac{n}{d})F(d)$ $=\sum_{n|d}\mu(\frac{n}{d})\lfloor \frac{N}{d} \rfloor \lfloor \fr

BZOJ 2301: [HAOI2011]Problem b(莫比乌斯反演)

2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MB Submit: 7931  Solved: 3876 [Submit][Status][Discuss] Description   对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。   Inpu

[luogu2522][bzoj2301][HAOI2011]Problem b

传送门:https://www.luogu.org/problemnew/show/P2522 题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。 分析 特殊情况和POI2007 ZAP-Queries相同。 接下来的问题就是解决普遍情况,不难得到答案就是\(ans(b,d)-

[HAOI2011]problem a

题目:一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低。”问最少有几个人没有说真话(可能有相同的分数) n<=100000 按ai从小到大排序,设f[i]f[i]f[i]为第i个人为真时最多的真话。 那么f[i]=max(f[i],f[j]+1),j<if[i] = max(f[i] , f[j] + 1) , j < if[i]=m

p2519 [HAOI2011]problem a

传送门 分析 其实我们可以很巧妙的把这道题转化成一道线段覆盖的问题,怎么转化呢?对于每一个描述,我们可以根据他所描述的比他高的和比他矮的人数来构造一条线段,左端点l即为y+1,右端点r为n-x。当我们转化成线段以后,这一段线段就表示着分数相同的人数,那么显然,只有与这个线段完全重合的线

P2519 [HAOI2011]problem a

\(\color{#0066ff}{ 题目描述 }\) 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低。”问最少有几个人没有说真话(可能有相同的分数) $\color{#0066ff}{ 输入格式 } $ 第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai、bi \(\color{#0066ff