日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

bzoj 2190: [SDOI2008]仪仗队 线性欧拉函数

發布時間:2025/7/14 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bzoj 2190: [SDOI2008]仪仗队 线性欧拉函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2190: [SDOI2008]儀仗隊

Time Limit:?10 Sec??Memory Limit:?259 MB
[Submit][Status][Discuss]

Description

  作為體育委員,C君負責這次運動會儀仗隊的訓練。儀仗隊是由學生組成的N * N的方陣,為了保證隊伍在行進中整齊劃一,C君會跟在儀仗隊的左后方,根據其視線所及的學生人數來判斷隊伍是否整齊(如下圖)。   ??  現在,C君希望你告訴他隊伍整齊時能看到的學生人數。

Input

  共一個數N。

Output

  共一個數,即C君應看到的學生人數。

Sample Input

  4

Sample Output

  9


HINT

?

【數據規模和約定】   對于 100% 的數據,1 ≤ N ≤ 40000

思路:求gcd(x,y)==1 ?1<=x,y<=N;

   ? ans=2*sigma(phi[i])+2-1;

   ps:我以為N==1的時候為0;然而并沒有1這樣的數據;

#include<bits/stdc++.h> using namespace std; #define ll long long #define esp 1e-10 const int N=1e5+10,M=1e6+10,mod=1e9+7,inf=1e9+10; ll p[M],ji; bool vis[M]; ll phi[M]; void get_eular(int n) {ji = 0;memset(vis, true, sizeof(vis));for(int i = 2; i <= n; i++){if(vis[i]){p[ji ++] = i;phi[i] = i - 1;}for(int j = 0; j < ji && i * p[j] <= n; j++){vis[i * p[j]] = false;if(i % p[j] == 0){phi[i * p[j]] = phi[i] * p[j];break;}elsephi[i * p[j]] = phi[i] * phi[p[j]];}} } ll sumphi[M]; int main() {ll x,y,z,i,t;get_eular(40100);phi[1]=1;sumphi[0]=0;for(i=1;i<=40000;i++)sumphi[i]=sumphi[i-1]+phi[i];while(~scanf("%lld",&x)){if(x==1)printf("0\n");elseprintf("%lld\n",2*sumphi[x-1]+1);}return 0; }

?

轉載于:https://www.cnblogs.com/jhz033/p/5702839.html

總結

以上是生活随笔為你收集整理的bzoj 2190: [SDOI2008]仪仗队 线性欧拉函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。