Codeforces 236C LCM Challenge 數論(基礎題)
題意:找到三個數<=n (n<=1e6)&&使LCM(a,b,c)儘量大
LCM=(a*b*c)/(d1*d2) d1為gcd(a,b) d2為gcd(ab/d1,c)
n<3特判
n>3:分以下兩種情況
若n為奇數: n-1為偶數與n,n-1都互質&&gcd(n,n-2)=1(n為奇數) 設d|n&&d|n-2 則d|2 d<=2 由n為奇數得 d=1
所以三個數兩兩互質 直接相乘就能得到最大的LCM
若n為偶數 可得一個LCM k1=(n-1)(n-2)(n-3) 可能比k1大的只有當n%3!=0 -> gcd(n,n-3)=1 LCM(n,n-1,n-3)=n*(n-1)*(n-3)>k1
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=2e5+20; ll n,ans; ll gcd(ll a,ll b) { return a%b==0? b:gcd(b,a%b); } int main() { while(cin>>n) { if(n>=3) { if(n%2) cout<<n*(n-1)*(n-2)<<endl;//奇數開頭三個數互質 else { ll k1=(n-1)*(n-2)*(n-3); //顯然n%2==0&&n>3,LCM(n,n-1,n-2)<k1 //當n%2==0&&n%3!=0 -> gcd(n,n-3)=1 LCM(n,n-1,n-3)=n*(n-1)*(n-3)>k1 ll k2=0; if(n%3) { k2=n*(n-1)*(n-3); } cout<<max(k1,k2)<<endl; } } else { if(n==1) cout<<1<<endl; else if(n==2) cout<<2<<endl; } } return 0; }
相關推薦
Codeforces 236C LCM Challenge 數論(基礎題)
題意:找到三個數<=n (n<=1e6)&&使LCM(a,b,c)儘量大 LCM=(a*b*c)/(d1*d2) d1為gcd(a,b) d2為gcd(ab/d1,c)
Codeforces 515C 題解(貪心+數論)(思維題)
題面 Drazil is playing a math game with Varda. Let’s define f(x)f(x)for positive integer x as a product of factorials of its digi
【數論思維題】Enlarge GCD【Codeforces Round #511 (Div. 2)】
題意: 給你 n 個數,分別為 a1、a2、...、ai、... an,現在從這n個數中刪去p個數,使剩下的數的gcd變大。求最小的p。 思路: 一開始的思路是想用貪心做,先求出所有數字的gcd,然後將數字排序,再依次求gcd,如果與當前這個
Educational Codeforces Round 23 A-F 補題
als nal 枚舉 typedef code col sca 復雜 long long A Treasure Hunt 註意負數和0的特殊處理。。 水題。。 然而又被Hack了 嗎的智障 #include<bits/stdc++.h> using names
Java基礎題
更新 -a ext 大神 準備 bsp detail 其他 java Java面試題 最近一直在準備各種考試,好長時間沒更新筆記了,這兩天在復習數據結構的一些知識,但也沒忘了關註Java的相關知識。從網上找了其他大神的相關面試題,大家可以看一下,希望對大家有
Codeforces Round #419 (Div. 1) 補題 CF 815 A-E
pac 三元組 題意 pan codeforce names bre d+ cmp A-C傳送門 D Karen and Cards 技巧性很強的一道二分優化題 題意很簡單 給定n個三元組,和三個維度的上限,問存在多少三元組,使得對於給定的n個三元組中的每一個,必有兩個維度
POJ 2251 三維BFS(基礎題)
art cube find bsp ssi cal input nal sample Dungeon Master Description You are trapped in a 3D dungeon and need to find the quickest way o
ZOJ - 3890 Wumpus(BFS基礎題)
bject when urn include math ase 找到 algo step Wumpus Time Limit: 2 Seconds Memory Limit: 65536 KB One day Leon finds a
002 生信基礎題
it is cti ble 數列 ini mes tcc pen true 01 ‘GATCCAGATCCCCATAC‘, 計算這串數列中兩個出現最高的頻率。 t = ‘GATCCAGATCCCCATAC‘ L = [ ] for i in range(le
二分圖的一大潑基礎題
sbo colors 關鍵點 tel 最短 lin nes bit oot 【HDU】//1068 Girls and Boys 最大匹配★//1150 Machine Schedule 最小點覆蓋★1151 Air Raid 最小路徑覆蓋★//1179 Ollivande
數論基礎
p s chl 方程 實現 題意 標記 tro ext -a Dirichlet理論 題意 給定 $a, b, L, U$ , 求 $an + b$ 中有多少個素數. $a > 0, b \ge 0, U \ge L \ge 0$ . $an + b
POJ 2398 - Toy Storage - [計算幾何基礎題][同POJ2318]
fin 邊界 vector nta 鏈接 ++ 輸出 mine puts 題目鏈接:http://poj.org/problem?id=2398 Time Limit: 1000MS Memory Limit: 65536K Description Mom and dad
POJ 2186 受歡迎的牛 Tarjan基礎題
algo name r+ int add for stack div elong 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include&l
Codeforces 901C. Bipartite Segments(思維題)
lose struct ostream part pan -i lap read har 擦。。沒看見簡單環。。已經想的七七八八了,就差一步 顯然我們只要知道一個點最遠可以向後擴展到第幾個點是二分圖,我們就可以很容易地回答每一個詢問了,但是怎麽求出這個呢。
CodeForces 5C(DP初步_G題)解題報告
pty cst ret force display ace ont pop 是否 題目鏈接:http://codeforces.com/problemset/problem/5/C ----------------------------------------------
CodeForces 607B(DP初步_H題)解題報告
思路 algorithm 次數 spa cstring spl 移除 狀態轉移方程 color 題目鏈接:http://codeforces.com/problemset/problem/607/B -------------------------------------
HDU 1285 確定比賽名次(拓撲排序基礎題)
個數 排名 有向無環圖 沒有 left php 輸出 編號 整數 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 題目: 有N個比賽隊(1<=N<=500),編號依次為1,2,3,。。。。,N進行比賽,
POJ 2367 Genealogical tree (拓撲排序基礎題)
acc actually ref ron ear scrip ssi sam tel 題目鏈接:http://poj.org/problem?id=2367 題目: Description The system of Martians‘ blood relations
SPOJ DQUERY D-query(莫隊基礎題)
com nts numbers problem algorithm problems rep div void 題目鏈接:http://www.spoj.com/problems/DQUERY/ 題目: Given a sequence of n numbers a1,