BZOJ2005 NOI2010 能量采集 歐拉函數

題意:求$\sum\limits_{i = 1}^N {\sum\limits_{j = 1}^M {f(i,j)} } $,其中f(i,j)=(0,0)與(i,j)連線上點的數量

題解:

如果一個點(x',y')在(0,0)與(x,y)的連線上,則有gcd(x',y')==gcd(x,y)。因此f(i,j)=(gcd(i',j')=gcd(i,j))且i'<i,j'<j的點的數量。

由于題目中不需要統計(x,y)本身,所以計算出的2*ans=ANS+N*M=>ANS=2*ans-N*M。
現在我們來看如何求ans,我們枚舉倍數i,則滿足x%i==0 && y%i==0的點(x,y)的數量就有(N/i)*(M/i)個,而對于每個這樣的點,其與(0,0)連線上的點就有phi(i)個,因此
ans=sum(phi(i)*(N/i)*(M/i))
然后用分塊就可以將復雜度降為sqrt(N)

#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
#define ll long longconst int MAXN=100000+2;
ll N,M,ans;
ll f[MAXN];
ll phi[MAXN],prime[MAXN];
bool flag[MAXN];int main(){cin >> N >> M;if(M>N) swap(N,M);phi[1]=1;for(int i=2,k=0;i<=n;i++){if(!flag[i]) prime[++k]=i,phi[i]=i-1;for(int j=1;j<=k && prime[j]*i<=n;j++){flag[i*prime[j]]=1;if(!(i%prime[j])){phi[i*prime[j]]=phi[i]*prime[j];break;}phi[i*prime[j]]=phi[i]*(prime[j]-1);}}for(int i=2;i<=M;i++) phi[i]+=phi[i-1];for(int i=1,j;i<=M;i=j+1){j=min(N/(N/i),M/(M/i));ans+=(phi[j]-phi[i-1])*(N/i)*(M/i);}cout << 2*ans-N*M << endl;return 0;
}
View Code

?

轉載于:https://www.cnblogs.com/WDZRMPCBIT/p/6444703.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456367.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456367.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456367.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

通過__tablename__ = 'xxx' #定義表名

from datetime import datetimefrom exts import dbclass User(db.Model):__tablename__ user1 #定義表名id db.Column(db.Integer,primary_keyTrue,autoincrementTrue)username db.Column(db.String(10), nullableTrue)password db.Column(db.String(256), nullableTrue)p…

python子類繼承父類特性,pycharm上面已經提示繼承了,為什么會報沒有該特性的錯誤?

因為在子類里覆蓋了父類的__init__ 如果需要調用父類用super class A(object):def __init__(self):self.a 1def fun(self):print self.aclass B(A):def __init__(self):self.b 2super(B, self).__init__()def fun(self):print self.aprint self.bB().fun()

Hadoop偽分布安裝詳解(一)

注&#xff1a;以下截圖針對Ubuntu操作系統&#xff0c;對Centos步驟類似。請讀者選擇不同鏡像即可。 第一部分&#xff1a;VMware WorkStation10 安裝 1.安裝好VMware10虛擬機軟件并下載好Ubuntu16.04 LTS 64位版的鏡像包 2.打開VMware10虛擬機軟件&#xff0c;選擇“創建新的…

C++_const常成員作用

介紹 常成員是什么 1.常成員關鍵詞為&#xff1a;const 2.常成員有&#xff1a;常成員變量、常成員函數、常成員對象 常成員有什么用 1.常成員變量&#xff1a;用于在程序中定義不可修改內部成員變量的函數 2.常成員函數&#xff1a;只能夠訪問成員變量&#xff0c;不可以修改成…

Python開發中收集的一些常用功能Demo

文章目錄目錄&#xff1a;前言&#xff1a;1、Python判斷文件是否存在的幾種方法&#xff1a;1.1、使用os模塊1.2、使用Try語句&#xff08;比較嚴謹的寫法&#xff09;1.3、使用pathlib模塊2、Python中寫入List到文本中并換行的方法3、Python按行讀取文件的幾種簡單實現方法3.…

Unlicensed ARC session – terminating!

問題描述 近日&#xff0c;發現ArcGIS10.4中存在很多bug&#xff0c;而且費了好多時間去測試它&#xff0c;最終決定改用10.1。在降級程序時遇到許可問題。 重裝ArcGIS10.1后&#xff0c;打開工程&#xff0c;所有引用都自動映射&#xff0c;沒報任何錯誤&#xff0c;清理重新生…

SQLAlchemy - Column詳解

SQLAlchemy - Column詳解 Column常用參數&#xff1a; default&#xff1a;默認值 nullable&#xff1a;是否可有 primary_key&#xff1a;是否為主鍵 unique&#xff1a;是否唯一 autoincrement&#xff1a;是否自動增長 onupdate&#xff1a;更新的時候執行的函數 name&…

Linux命令三劍客:grep、sed、awk總結

文章目錄前言一、grep命令語法實例grep結合pattern正則二、sed命令語法案例三、awk命令語法實例前言 最近看到了幾篇關于linux命令grep、sed、awk的文章&#xff0c;這里總結下&#xff0c;方便后面使用。 一、grep grep命令&#xff08;grep的全稱&#xff1a;Global searc…

python 機器學習資料

!(7 Steps to Mastering Machine Learning With Python) [http://www.kdnuggets.com/2015/11/seven-steps-machine-learning-python.html] 轉載于:https://www.cnblogs.com/zk47/p/6448506.html

Flask-SQLAlchemy 中如何不區分大小寫查詢?

例如下面的 User 模型&#xff0c;在數據庫中查詢時并不會區分大小寫 class User(db.Model):__tablename__ usersid db.Column(db.Integer, primary_keyTrue)username db.Column(db.String(64), uniqueTrue, indexTrue)password_hash db.Column(db.String(128)) 這時&…

Git常用指令及功能總結

文章目錄前言&#xff1a;1、常用的git指令2、常用git功能及操作2.1、下載代碼&#xff1a;2.2、當前分支和master保持一致2.3、修改代碼后提交代碼到指定分支2.4、版本回退&#xff08;時空穿梭機&#xff09;2.5、概念工作區和暫存區2.6、添加遠程庫2.7、分支管理2.8、標簽管…

MacOS下MySQL配置

先去官網下載一個 MySQL for mac http://www.cnblogs.com/xiaobo-Linux/ 命令行運行終端&#xff0c;運行下面兩條命令&#xff1a; 12alias mysql/usr/local/mysql/bin/mysqlalias mysqladmin/usr/local/mysql/bin/mysqladmin方便終端直接輸入mysql命令&#xff0c;而不是必須…

HashMap為什么在多線程下會讓cpu100%

首先HashMap并不是sun公司多線程提供的集合&#xff0c;很多時候我們的程序是一個主線程&#xff0c;用了hashmap并沒有什么問題&#xff0c;但是在多線程下會出現問題。 hashmap是一個哈希表&#xff0c;存儲的數據結構也可以是一個線性數組&#xff0c;我們的存儲的數據都在e…

flask中關于endpoint端點、url_map映射、view_func視圖函數,view_functions、及視圖函數名是否何以相同的問題?

視圖函數中關于url_map視圖的映射&#xff1a;應該是[ url->methonds->endpoint ] 而整個請求的過程&#xff0c;是先通過url地址映射到端點endpoint&#xff0c;然后通過endpoint找到試圖函數view_func&#xff08;擴展:在Flask類里邊有一個view_funtions的屬性&…

SparkSQL-從0到1認識Catalyst

文章目錄前言正文預備知識&#xff0d;Tree&RuleCatalyst工作流程ParserAnalyzerOptimizerSparkSQL執行計劃前言 這篇文章是轉載一位大神的文章&#xff0c;為什么要轉載的&#xff0c;實在是因為寫的太經典了&#xff0c;所以忍不住希望能有更多的人可以看到。后續還會轉…

為什么程序員一定要加班?

摘要&#xff1a; 一提到程序員&#xff0c;大多數人的印象大概就是死宅、無趣、沒有私人生活&#xff0c;除了上班寫寫寫代碼&#xff0c;加班寫代碼更是標配。似乎在深夜頂著雞窩頭&#xff0c;目光呆滯&#xff0c;面無表情敲鍵盤的場景才是一個程序員的真實寫照。 當然&…

javascript 反斜杠\

通常&#xff0c;我們在動態給定一個div的innerHTML時&#xff0c;通常是樣做的&#xff1a; <div id"demo1" /> <SCRIPT> var demo document.getElementById("demo1"); var str "<h1>" "<a hrefjavascript:; ο…

SQLAlchemy 中的 Session、sessionmaker、scoped_session

SQLAlchemy 中的 Session、sessionmaker、scoped_session 目錄 一、關于 Session 1. Session是緩存嗎&#xff1f;2. Session作用&#xff1a;3. Session生命周期&#xff1a;4. Session什么時候創建&#xff0c;提交&#xff0c;關閉&#xff1f;4. 獲取一個Session&#xf…

沒有任何權力的“項目經理”該如何當?

2016.11.25 11:40* 字數 1454 閱讀 108評論 0喜歡 1小王幾月前被任命為項目經理&#xff0c;負責9個人的工作安排。工作上要對上負責&#xff0c;完成項目&#xff0c;可對下小王卻沒有對小組成員的工作考核權&#xff0c;也就是說&#xff0c;不能影響他們的收入。 圖片發自簡…

SparkSQL之Join原理

文章目錄前言&#xff1a;Join背景介紹Join常見分類以及基本實現機制Hash JoinBroadcast Hash JoinShuffle Hash JoinSort-Merge Join總結前言&#xff1a; 寫SQL的時候很多時候都有用到join語句&#xff0c;但是我們真的有仔細想過數據在join的過程到底是怎么樣的嗎&#xff…