CF476D-Dreamoon and Sets【结论】
生活随笔
收集整理的這篇文章主要介紹了
CF476D-Dreamoon and Sets【结论】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
正題
題目鏈接:https://www.luogu.com.cn/problem/CF476D
題目大意
求nnn個四元組使得
- 所有四元組內(nèi)沒有重復(fù)的數(shù)。
- 四元組內(nèi)的數(shù)字兩兩之間gcdgcdgcd都為kkk。
要求使得最大的數(shù)字最小
1≤n≤10000,1≤k≤1001\leq n\leq 10000,1\leq k\leq 1001≤n≤10000,1≤k≤100
解題思路
首先kkk是沒有用的因為可以視為互質(zhì),然后再乘kkk,然后考慮如何構(gòu)造。
考慮每次在原來n?1n-1n?1個四元組的基礎(chǔ)上加入四個數(shù)然后重新排列使得合法,首先對于任意xxx都有x,x+1,x+2x,x+1,x+2x,x+1,x+2肯定是互質(zhì)的,所以一種比較可能正確的方法是把這三個排到一個二元組,然后再考慮剩下那個排啥,顯然x+4x+4x+4不行,那就只能排x+5x+5x+5了。
這樣一次占用了六個數(shù)字,可以證明是最優(yōu)的做法但是我不會證/kk。
時間復(fù)雜度:O(n)O(n)O(n)
code
#include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; ll n,k; signed main() {scanf("%lld%lld",&n,&k);printf("%lld\n",(6ll*n-1)*k);for(ll i=1;i<=n;i++)printf("%lld %lld %lld %lld\n",(6ll*i-5ll)*k,(6ll*i-4ll)*k,(6ll*i-3ll)*k,(6ll*i-1ll)*k);return 0; }總結(jié)
以上是生活随笔為你收集整理的CF476D-Dreamoon and Sets【结论】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 游戏测试电脑配置要求(游戏测试电脑配置)
- 下一篇: 电脑吃配置的游戏有哪些(电脑吃配置的游戏