首页 > 其他分享 >[SDOI2008] 仪仗队【题解】

[SDOI2008] 仪仗队【题解】

时间:2023-01-31 15:44:41浏览次数:187  
标签:include 仪仗队 int 题解 右上角 MAXN 对角线 SDOI2008

题目描述

作为体育委员,C 君负责这次运动会仪仗队的训练。仪仗队是由学生组成的 \(N \times N\) 的方阵,为了保证队伍在行进中整齐划一,C 君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。

现在,C 君希望你告诉他队伍整齐时能看到的学生人数。

思路

题目给出一个 \(n \times n\) 的点阵,对于这个点阵,我们从左下角到右上角画一条斜线,分离左上部分和右下部分。

然后我们可以发现这个点阵是根据这条对角线对称的。

对于这条对角线,我们从右上角开始,对其经过的点依次进行标号。

最后发现有 n 个点。

第 1 个和第 n 个处于最角上(其中一个还是自己),不可能看到。

对于对角线上剩下的点依次进行分析。

我们已知这条线上的点是看不到的(坐标点右上角那一个点除外,单独分析)。

· · · · · 1
· · · · 2 ·
· · · 3 · ·
· · 4 · · ·
· 5 · · · ·
6 · · · · ·

我们可以发现,其中一部分与该编号的点是可以看到的点。
因此,最终是求 2 到 n-1 互质的个数。

Code

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#define MAXN 40500 

using namespace std;

int prime[MAXN],cnt,phi[MAXN];
bool isprime[MAXN];

void eular()// 线性筛求欧拉函数  
{
	for(int i = 1;i <= MAXN; i++)
		isprime[i] = 1;
	isprime[1] = 0;
	phi[1] = 1;
	for(int i = 2;i <= MAXN; i++)
	{
		if( isprime[i] )
		{
			prime[++cnt] = i;
			phi[i] = i - 1;
		}
		
		for(int j = 1;j <= cnt and i*prime[j] <= MAXN; j++)
		{
			isprime[i*prime[j]] = 0;
			if( i%prime[j] != 0 )
				phi[i*prime[j]] = phi[i] * phi[prime[j]];
			else
			{
				phi[i*prime[j]] = phi[i] * prime[j];
				break;
			}
		}
	}
}

int main()
{
	int n;
	cin >> n;
	eular(); 
	int sum = 0;
	for(int i = 2;i < n; i++)
		sum += phi[i];
	 
	cout << sum*2 + 3;
	return 0;
}

标签:include,仪仗队,int,题解,右上角,MAXN,对角线,SDOI2008
From: https://www.cnblogs.com/baijian0212/p/17079391.html

相关文章

  • Luogu P4145 上帝造题的七分钟 2 / 花神游历各国 题解
    Luogu链接:上帝造题的七分钟2/花神游历各国${\scr\color{Orchid}{\text{Solution}}}$题目大意支持两种操作:区间开方(向下取整)区间求和分析发现线段树容易实......
  • AT dp 26 题 题解
    题单:https://www.luogu.com.cn/training/100578#problems嘛虽然是26题,但是简单的题就不想写了...就写绿题及以上的吧目录EIJMOPQRSTUVE对重量dp,设\(dp[i][v]\)表......
  • uniapp webview中动态设置公众号文章标题不显示问题解决
    设置在onLoad中可能会引起偶发性无效。解决方案:1、改写在onReady生命周期中。2、用setTimeout设置延迟。 onReady(){this.timers=setTimeout(()=>{......
  • USACO2023 Bronze 题解
    Problem1.Leaders\(\mathcal{Farmer\John}\)共有\(n\)头奶牛,品种用字符\(\mathsf{G}\)或\(\mathsf{H}\)表示。每一头牛有一个管辖区间\([i,E_i]\)称一头......
  • 算法:线段树&&Luogu p3372题解
    前言不愧是线段树,竟然卡我这么久,还是那句话:十年OI一场空,不开longlong见祖宗#1什么是线段树?线段树长什么样?通俗一点,线段树就是线段,树。实际上,线段树是一棵完全......
  • CF1067E 题解
    题意传送门给定一棵\(n\)个节点的树,每条边有\(\frac{1}{2}\)的概率出现,可以得到一个森林,求这个森林邻接矩阵的秩的期望。\(1\len\le5\times10^5\)。题解此题关键......
  • [AHOI2022] 山河重整 题解
    T3,一个不错的数学题,给了不少的暴力分。Statement求有多少值域为\([1,n]\)的集合,01背包可以凑出\(1\simn\)中的所有数字。Subtask\(1\sim6\)我们从小到大选择每......
  • 微信小程序-【转发好友】以及中文标题乱码问题解决
    微信小程序的转发功能,参考官方文档,使用的buttom的open-type功能,下面是转发功能的具体实现。//通过按钮的open-type="share"实现转发,触发onShareAppMessage函数<butto......
  • 洛谷P2375 [NOI2014] 动物园【题解】
    题目简要对于字符串\(......
  • 部分互测题,专项测试题题解
    互测部分1https://www.cnblogs.com/Chencgy/p/16970117.html2A.营救皮卡丘跑弗洛伊德,搞出\(i->j\)不经过比\(i,j\)编号大的点的最小花费每个点都要走一遍,套......