日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Max Sum Array 贪心(2500)

發(fā)布時間:2025/3/19 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Max Sum Array 贪心(2500) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


題意 :

  • 給一數(shù)組c=[c1,c2,...,cm]c=[c_1,c_2,...,c_m]c=[c1?,c2?,...,cm?],求構(gòu)造一個長度為n的數(shù)組a=[a1,a2,...,an]a=[a_1,a_2,...,a_n]a=[a1?,a2?,...,an?],使得?i∈[1,m]\forall i \in [1,m]?i[1,m]恰好有cic_ici?iii出現(xiàn)在數(shù)組aaa
  • 定義一個函數(shù)f(a)=∑1≤i<j≤n,ai=ajj?if(a)=\sum_{1 \leq i < j \leq n,a_i=a_j}j-if(a)=1i<jn,ai?=aj??j?i,求出f(a)f(a)f(a)的最大值,并且求出當f(a)f(a)f(a)最大時,aaa的構(gòu)造方案

思路 :

  • 容易想到一個貪心,注意到相同的數(shù)字間的距離越遠,對答案的貢獻越大,于是對數(shù)字大小從大到小來考慮,每次都拿出兩個放到aaa兩邊,這就是構(gòu)造方法
  • 接下來考慮對答案的貢獻以及方案數(shù)的計算
  • 首先考慮對答案的貢獻,設(shè)當前aaa中還有numnumnum個位置沒排,當前排個數(shù)為iii的數(shù),設(shè)有cnt[i]cnt[i]cnt[i]個,根據(jù)剛才的策略,容易得出對iii從大到小考慮。首先就是這cnt[i]cnt[i]cnt[i]個數(shù)依次放到數(shù)組兩邊,那么每個數(shù)字的貢獻就是num?cnt[i]?2+cnt[i]num-cnt[i]*2+cnt[i]num?cnt[i]?2+cnt[i]一共有cnt[i]cnt[i]cnt[i]個數(shù)字,乘起來,最后還要算上兩邊對中間的(i?2)?cnt[i](i-2)*cnt[i](i?2)?cnt[i]個數(shù)的貢獻(i?2)?cnt[i]?(num?cnt[i]?2+cnt[i])(i-2)*cnt[i]*(num-cnt[i]*2+cnt[i])(i?2)?cnt[i]?(num?cnt[i]?2+cnt[i])化簡后就是(num?cnt[i])?cnt[i]?(i?1)(num-cnt[i])*cnt[i]*(i-1)(num?cnt[i])?cnt[i]?(i?1) 每輪放數(shù)字結(jié)束后記得把num?=2?cnt[i]num-=2*cnt[i]num?=2?cnt[i],因為有這么多的位置被占了
  • 方案數(shù)的話就很簡單了,對當前個數(shù)為1的時候進行特判,因為這個只能放一邊,其他的都是可以兩邊隨意放,所以就是cnt[i]!cnt[i]!cnt[i]!種,乘法原理即可
#include <iostream> #include <vector>using namespace std; using ll = long long;const int N = 1e6 + 10; const ll MOD = 1e9 + 7;inline void solve() {int n; cin >> n;vector<int> cnt(N);vector<ll> f(N);ll num = 0;for (int i = 1; i <= n; i ++ ){int x; cin >> x;num += x; // num表示一共有多少個位置要放東西cnt[x] ++ ; // cnt數(shù)組表示個數(shù)為x的數(shù)有多少種}f[0] = 1;for (int i = 1; i <= n; i ++ ) f[i] = f[i - 1] * i % MOD; // 計算階乘 f[i] = i!ll res = 0, ways = 1; // 最大值和方案數(shù)for (int i = 1000000; i; i -- ) // 個數(shù) 1000000 -> 1{cnt[i] += cnt[i + 2]; // 注意,之前的數(shù)都只排了兩個,肯定有剩下的,所以需要隔位后綴和if (i == 1) ways = ways * f[cnt[i]] % MOD; // 特判個數(shù)為1的數(shù),如果個數(shù)1(被迫放在同一邊),就是 (cnt[1]!)else ways = ways * f[cnt[i]] % MOD * f[cnt[i]] % MOD; // 否則,是 (cnt[i]!) * (cnt[i]!) (兩邊位置和)res = (res + (num - cnt[i]) * cnt[i] % MOD * (i - 1) % MOD) % MOD;num -= 2 * cnt[i];}cout << res << ' ' << ways << endl; }int main() {cin.tie(nullptr) -> sync_with_stdio(false);// int _; // cin >> _; // while (_ -- )solve(); }

總結(jié)

以上是生活随笔為你收集整理的Max Sum Array 贪心(2500)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费在线观看你懂的 | 国产精品网站在线观看 | 四虎最新站名点击进入 | 69堂免费视频 | 在线国产网站 | 欧美一级片免费观看 | 一区二区三区中文字幕在线观看 | 人妻夜夜爽天天爽 | 亚洲国产mv| 成人午夜视频免费观看 | 韩国一级淫一片免费放 | 黑人av | 亚洲va久久久噜噜噜久久天堂 | 国产精品自拍在线观看 | 天天操女人 | 国产毛片精品国产一区二区三区 | 国产精品视频麻豆 | 九九99精品视频 | 男女黄色片 | 91麻豆精品视频 | 中文字幕久久av | 精品精品视频 | 男女视频免费观看 | 黄色日批网站 | 亚洲第一自拍 | 狠狠狠狠狠| 国自产拍偷拍精品啪啪一区二区 | 亚洲视频天天射 | 无码人妻丰满熟妇区毛片蜜桃精品 | 91直接看| 亚洲奶水xxxx哺乳期 | 激情久久免费视频 | 国产精品无码久久久久成人app | 亚洲欧美一区二区三区在线观看 | 久久久久人妻精品色欧美 | 激情视频免费观看 | 毛片一区二区三区 | 伊人www| 九色在线播放 | 撕开少妇裙子猛然进入 | 亚洲精品黄色 | 国产精品国产 | 麻豆精品在线播放 | 日本熟妇一区二区 | 日韩黄色影视 | 亚洲精品视频在线观看免费视频 | 国产精品久久午夜夜伦鲁鲁 | 伊人影院av| 亚洲美女影院 | 国产日韩欧美一区二区 | 五月婷婷视频在线观看 | 色婷婷av777| 理论片第一页 | 99精品视频在线看 | 免费国产视频 | 国产一级做a爰片在线看免费 | 色视频免费观看 | 九九激情视频 | 国产com| 性户外野战hd | 91视频色| 欧美1区| 亚洲国产图片 | 久久99综合 | 亚洲a一区 | 中文字幕视频免费 | 亚洲香蕉在线观看 | 精品视频www | 国产精品一区二区av白丝下载 | 国产成年人网站 | 99久久婷婷国产精品综合 | 欧美成人生活片 | 日本视频www | 91极品身材尤物theporn | 五月婷婷免费视频 | 国产精品免费视频一区 | 久青草视频在线 | 成人av综合 | 国产人人看 | 天天鲁 | 欧美a级在线观看 | 香蕉视频网站在线 | 日韩一区二区三区四区在线 | 国产女人在线 | 一区中文字幕 | 免费极品av一视觉盛宴 | jizz日本在线观看 | 欧美老熟妇xb水多毛多 | 91精品久久久久久综合五月天 | 欧美成人一区二区三区 | 亚洲永久免费网站 | 亚洲精品天堂在线 | 国产精品区一区二 | 欧美一级二级三级 | 欧日韩在线观看 | 台湾av在线 | 日韩在线一级片 | 黄色不卡视频 | 久久国产中文 |