洛谷——P2158 [SDOI2008]仪仗队】的更多相关文章

P2158 [SDOI2008]仪仗队 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). 现在,C君希望你告诉他队伍整齐时能看到的学生人数. 输入输出格式 输入格式: 共一个数N 输出格式: 共一个数,即C君应看到的学生人数. 说明 对于 100% 的数据,1 ≤ N ≤ 40000 今天看了一天的欧拉函数,明天月考放飞自我了... 对于欧拉…
P2158 [SDOI2008]仪仗队 找规律大水题嘛,如果你做过P1170 兔八哥与猎人 这题得到的规律是$a,b,c,d$,若$gcd(a-b,c-d)==1$ 那么$a,b$就能看到$c,d$ 显然这题暴力枚举$O(n^2)$是过去的,然后有了规律,那么这题也就是要求$\sum_{i=1}^{n} \varphi i$ 据说线性筛可以筛欧拉函数,来瞧一瞧 首先根据欧拉函数通式$\varphi(x)=x\prod\limits_{i=1}^{n}{(1-\frac{1}{p_i})}$ 其中…
题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). 现在,C君希望你告诉他队伍整齐时能看到的学生人数. 输入输出格式 输入格式: 共一个数N 输出格式: 共一个数,即C君应看到的学生人数. 输入输出样例 输入样例#1: 4 输出样例#1: 9 说明 [数据规模和约定] 对于 100% 的数据,1 ≤ N ≤ 40000 看了题解,互质点对,瞬间…
https://www.luogu.org/problemnew/show/P2158 以人所在位置为(0,0)建立坐标系, 显然除了(0,1)和(1,0)外,可以只在坐标(x,y)的gcd(x,y)==1时统计贡献..因为如果gcd(x,y)==g而g不等于1,那么会在(x/g,y/g)处统计贡献 1要特判.. #include<cstdio> #include<algorithm> #include<cstring> #include<vector> u…
https://www.luogu.org/problem/P2158 #include<bits/stdc++.h> #define int long long using namespace std; int n,ans; int Star_Platinum(int n) { //求欧拉函数 int sum=n; ; i*i<=n; i++) ) { sum-=sum/i; ) n/=i; } ) sum-=sum/n; return sum; } signed main() { s…
题意简述 给定一个n,求gcd(x, y) = 1(x, y <= n)的(x, y)个数 题解思路 欧拉函数, 则gcd(x, y) = 1(x <= y <= n)的个数 ans = φ(1) + φ(2) +...+ φ(n - 1) 最终答案为ans * 2 + 1; 代码 #include <cstdio> using namespace std; int n, ans; int phi[41000]; int main() { scanf("%d&quo…
Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). 现在,C君希望你告诉他队伍整齐时能看到的学生人数. Input 共一个数N Output 共一个数,即C君应看到的学生人数. Sample 输入样例#1: 4 输出样例#1: 9 Hints [数据规模和约定] 对于 100% 的数据,1 ≤ N ≤ 40000 Solution…
P2158 [SDOI2008]仪仗队图是关于y=x对称的,横纵坐标一定是互质的否则在之前就被扫过了,所以就可以用欧拉函数再*2就完了. #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> #include<ctime> #include<set> #include<map> #inclu…
P2158 [SDOI2008]仪仗队 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). 现在,C君希望你告诉他队伍整齐时能看到的学生人数. 错误日志: 没有特判 \(N = 1\) 的情况 Solution 除开 \((0,1) (1,0) (0,0)\) 这三个点不谈, 可以发现一个点可以被看到, 当且仅当 \(gcd(x, y) = 1…
洛谷 P1984 [SDOI2008]烧水问题 题目描述 把总质量为1kg的水分装在n个杯子里,每杯水的质量均为(1/n)kg,初始温度均为0℃.现需要把每一杯水都烧开.我们可以对任意一杯水进行加热.把一杯水的温度升高t℃所需的能量为(4200*t/n)J,其中,“J”是能量单位“焦耳”.如果一旦某杯水的温度达到100℃,那么这杯水的温度就不能再继续升高,此时我们认为这杯水已经被烧开.显然地,如果直接把水一杯一杯地烧开,所需的总能量为(4200*100)J. 在烧水的过程中,我们随时可以在两杯温…
有n个瓶子,里面都有一升水,但是只想保留k个瓶子,只能两个瓶子里面的水体积相等时才能倒在一个瓶子里:不能丢弃有水的瓶子:瓶子容量无限: 问需要购买几个额外的瓶子才能满足条件: 因为每个瓶子一开始只有一升水,那么合并后每个瓶子里面的水体积都是2i,也就是说,n个瓶子最少能合并成n的二进制数中1的个数个瓶子: 那么我们要买多少个瓶子呢?面对一个二进制数,我们因为要让他的1的个数变小,我们要加上lowbit (x&(-x)),这个表示的是保留这个数从右边起第一个1的位置, 比如:100010 lowb…
洛谷题目链接:[SDOI2008]仪仗队 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). 现在,C君希望你告诉他队伍整齐时能看到的学生人数. 输入输出格式 输入格式: 共一个数N 输出格式: 共一个数,即C君应看到的学生人数. 输入输出样例 输入样例#1: 4 输出样例#1: 9 说明 [数据规模和约定] 对于 100% 的数据,1 ≤ N…
本文搬自本人洛谷博客 题目 本文进行了一定的更新 优化了 Markdown 中 Latex 语句的运用,加强了可读性 补充了"我们仍不曾知晓得 消失的 性质5 ",加强了推导的严谨性 介于使用了新的推导方法,调整了推导顺序 补充了关于线性筛的欧拉函数性质8 又又又又又 修改了部分错误(工程量太大,老是出错) 安利了 3b1b 的链接,虽然与本文章无关,但对我们的思维提升很有利 将欧拉函数的定义正确修改 减少了 \(ans(n)\) 推导公式的争议性,加强了推导过程的严谨性 更新了 py…
https://www.luogu.org/problemnew/show/P2158 好像以前有个妹子收割铲也是欧拉函数. 因为格点直线上的点,dx与dy的gcd相同,画个图就觉得是欧拉函数.但是要注意对称轴还有左下角那个破点! #include<bits/stdc++.h> using namespace std; #define ll long long const int MAXN=40000+5; int phi[MAXN]; int pri[MAXN],pritop; bool n…
题目 首先我们先把题目分析一下. emmmm,这应该是一个找规律,应该可以打表,然后我们再分析一下图片,发现如果这个点可以被看到,那它的横坐标和纵坐标应该互质,而互质的条件就是它的横坐标和纵坐标的最大公约数为一,那这题的意思就变成了,在一个n * n的方格内寻找所有点的横坐标和纵坐标互质的点的个数. 但是这样复杂度肯定是过不去的.打表时间花费也是很多的,所以我们需要找到加快速度的方法,就是用欧拉函数来加快速度,所以我们就要实现大的优化,我们先明确欧拉函数是个什么东西. 欧拉函数 \(φ(x)\)…
欧拉函数入门题... 当然如果有兴趣也可以用反演做...类似这题 题意就是求,方阵从左下角出发能看到多少个点. 从0开始给坐标 发现一个点能被看到,那么横纵坐标互质. 然后求欧拉函数的前缀和,* 2 + 1即可. 注意特判. #include <cstdio> ; int p[N], phi[N], top; bool vis[N]; inline void getphi(int b) { phi[] = ; ; i <= b; i++) { if(!vis[i]) { p[++top]…
P1984 [SDOI2008]烧水问题 186通过 438提交 题目提供者lych 标签数论(数学相关)模拟各省省选 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 求助! 也是醉了... 题目有问题 这个不是SDOI的题吧... 这是什么???? 题目描述 把总质量为1kg的水分装在n个杯子里,每杯水的质量均为(1/n)kg,初始温度均为0℃.现需要把每一杯水都烧开.我们可以对任意一杯水进行加热.把一杯水的温度升高t℃所需的能量为(4200*t/n)J,其中,“J”是能量单位“焦耳”…
题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). 现在,C君希望你告诉他队伍整齐时能看到的学生人数. 分析就不写了都写得很<<<<全>>>>了就当看模板叭 #include<iostream> #include<cstdio> using namespace std; typede…
P2463 [SDOI2008]Sandy的卡片 题意 给\(n(\le 1000)\)串,定义两个串相等为"长度相同,且一个串每个数加某个数与另一个串完全相同",求所有串的最长公共子串,每个串长\(\le 101\),值域\(\in [0,1864]\) 先差分一下,然后连在一起中间加分隔符建sa 然后dp一下,要用到lcp,复杂度\(O(nm^2+n\log n)\) Code: #include <cstdio> #include <algorithm>…
P1984 [SDOI2008]烧水问题 题目描述 把总质量为1kg的水分装在n个杯子里,每杯水的质量均为(1/n)kg,初始温度均为0℃.现需要把每一杯水都烧开.我们可以对任意一杯水进行加热.把一杯水的温度升高t℃所需的能量为(4200t/n)J,其中,"J"是能量单位"焦耳".如果一旦某杯水的温度达到100℃,那么这杯水的温度就不能再继续升高,此时我们认为这杯水已经被烧开.显然地,如果直接把水一杯一杯地烧开,所需的总能量为(4200100)J. 在烧水的过程中,…
题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). 现在,C君希望你告诉他队伍整齐时能看到的学生人数. 输入输出格式 输入格式: 共一个数N 输出格式: 共一个数,即C君应看到的学生人数. 输入输出样例 输入样例#1: 4 输出样例#1: 9 说明 [数据规模和约定] 对于 100% 的数据,1 ≤ N ≤ 40000 题解: 欧拉函数PHI(…
P2155 [SDOI2008]沙拉公主的困惑 题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为\(1\)到\(N\)的阶乘,但是,政府只发行编号与\(M!\)互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的数量.现在,请你帮助沙拉公主解决这个问题,由于可能张数非常大,你只需计算出对\(R\)取模后的答案即可.\(R\)是一个质数. 输入输出格式 输入格式: 第一行为两个整数\(T\),\(R\).\(R \le 10^9+10\)…
题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图). 现在,C君希望你告诉他队伍整齐时能看到的学生人数. 输入输出格式 输入格式: 共一个数N 输出格式: 共一个数,即C君应看到的学生人数. 输入输出样例 输入样例#1: 4 输出样例#1: 9 说明 [数据规模和约定] 对于 100% 的数据,1 ≤ N ≤ 40000 不难发现 以C君为(0,…
题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图).  现在,C君希望你告诉他队伍整齐时能看到的学生人数. 输入输出格式 输入格式: 共一个数N 输出格式: 共一个数,即C君应看到的学生人数. 输入输出样例 输入样例#1: 4 输出样例#1: 9 说明 [数据规模和约定] 对于 100% 的数据,1 ≤ N ≤ 40000 队伍整齐,当且仅当在n…
上三角行恰好是[1,n-1]的欧拉函数 http://www.luogu.org/problem/show?pid=2158#sub //#pragma comment(linker, "/STACK:167772160") #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <queue> #include…
一道找规律 原题链接 显然要将烧得的温度最大化利用,即每次都去热传递. 设水沸腾为\(x\). 第一杯直接烧水,需提高\(x\). 第二杯先与第一杯进行热传递,这样只需提高\(\dfrac{x}{2}\),是上一杯的\(\dfrac{1}{2}\)倍.此时两杯温度为\(\dfrac{x}{2},x\). 第三杯先与第一杯进行热传递,再与第二杯进行热传递,需提高\(x-\dfrac{\dfrac{\frac{x}{2}}{2}+x}{2}=\dfrac{3x}{8}\),是上一杯的\(\dfrac…
传送门 本来出题人出出来想考数据结构的. 但是我们拥有map+vector/set这样优秀的STL,因此直接用map离散化,vector存下标在里面二分找答案就行了. 代码: #include<bits/stdc++.h> #define N 100005 using namespace std; inline int read(){ int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isdigit(ch)…
题目传送门 洞穴勘探 题目描述 辉辉热衷于洞穴勘测. 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径. 洞穴都十分坚固无法破坏,然而通道不太稳定,时常因为外界影响而发生改变,比如,根据有关仪器的监测结果,123号洞穴和127号洞穴之间有时…
题目传送门 郁闷的小j 题目描述 小J是国家图书馆的一位图书管理员,他的工作是管理一个巨大的书架.虽然他很能吃苦耐劳,但是由于这个书架十分巨大,所以他的工作效率总是很低,以致他面临着被解雇的危险,这也正是他所郁闷的. 具体说来,书架由N个书位组成,编号从1到N.每个书位放着一本书,每本书有一个特定的编码. 小J的工作有两类: 1.图书馆经常购置新书,而书架任意时刻都是满的,所以只得将某位置的书拿掉并换成新购的书. 2.小J需要回答顾客的查询,顾客会询问某一段连续的书位中某一特定编码的书有多少本.…
题目描述 辉辉热衷于洞穴勘测. 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径. 洞穴都十分坚固无法破坏,然而通道不太稳定,时常因为外界影响而发生改变,比如,根据有关仪器的监测结果,123号洞穴和127号洞穴之间有时会出现一条通道,有时这…