国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

{題解}[jzoj4064]【JSOI2015】套娃(doll)

2019-11-08 18:33:09
字體:
供稿:網(wǎng)友

傳送門

Analysis

直接考慮答案 Ans=∑Ii?Bi?∑Ai?Bi 其中Ai指i所匹配的out的大小。 顯然,為使Ans最小,要使∑Ai?Bi盡量大。 剩下的,也就沒什么了。 對(duì)于一個(gè)盡量大的Bi,選擇一個(gè)盡量大的Oj 至于實(shí)現(xiàn)的話…別人都跟我說使用線段樹。 但是我會(huì)O(n)[不包含排序],為什么要用O(n log n) 比如說,既然一個(gè)選擇不會(huì)被其他的選擇影響,那我們可以直接統(tǒng)排了Oi 剩下的自己YY,YY不出來看代碼。 –思考時(shí)間–

Code

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define oo 2139062143using namespace std;const long long N = 200200, NUM = 10100;long long n,ans;struct node{ long long i,o,b;}a[N],b[N];long long t[N],mxnm,fa[N];long long read(long long &n){ char ch=' ';long long q=0,w=1; for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar()); if(ch=='-')w=-1,ch=getchar(); for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;}bool cmpb(node a,node b){ return a.b > b.b;}long long max(long long a,long long b){ if (a > b) return a; else return b;}long long gf(long long x){ return ((fa[x] == x)?(x):(fa[x] = gf(fa[x])));}int main(){ freopen("doll.in","r",stdin); freopen("doll.out","w",stdout); //scanf("%lld", &n); read(n); for (long long i = 1;i <= n;i ++) { read(a[i].o),read(a[i].i),read(a[i].b); //scanf("%lld%lld%lld", &a[i].o, &a[i].i, &a[i].b); mxnm = max(mxnm,a[i].o); ans += a[i].i * a[i].b; } sort(a + 1,a + 1 + n,cmpb); for (long long i = 1;i <= n;i ++) t[a[i].o] ++; for (long long i = 1;i <= mxnm;i ++) { fa[i] = i; while (t[fa[i]] == 0 && fa[i] != 0) fa[i] = gf(-- fa[fa[i]]); } for (long long i = 1;i <= n;i ++) { long long l = gf(a[i].i - 1); if (l > 0) { -- t[l]; ans -= l * a[i].b; while (t[fa[l]] == 0 && fa[l] != 0) fa[l] = gf(-- fa[fa[l]]); } }
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 和林格尔县| 洛扎县| 嫩江县| 繁峙县| 馆陶县| 大埔区| 黄梅县| 鄱阳县| 涿鹿县| 荆州市| 双桥区| 新安县| 九江县| 甘谷县| 永州市| 长葛市| 泊头市| 郑州市| 安溪县| 尤溪县| 墨江| 广平县| 镇沅| 平果县| 河曲县| 田阳县| 林芝县| 滕州市| 聂荣县| 刚察县| 井陉县| 武宁县| 日照市| 天柱县| 沙坪坝区| 南京市| 安新县| 额尔古纳市| 盐亭县| 诸暨市| 西藏|