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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ZOJ3715 竞选班长求最小花费

發布時間:2025/6/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZOJ3715 竞选班长求最小花费 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
? ? ? 有n個小朋友競選班長,一號想當班長,每個人都必須選擇一個人當班長,并且不可以選擇自己,并且每個人都有一個權值ai,這個權值就是如果1想讓這個人改變主意選擇自己當班長就得給他ai個糖果,只有當1的票數是唯一最多的時候,1才能競選班長,問1競選班長的最小花費糖果數。

思路

? ? ? 昨天練習賽的最后一個題,今天才AC,這個題目我們可以用貪心的方法,記得當時自己看完也馬上感覺是貪心,可以因為選擇了錯誤的貪心方法和策略,導致寫了很長,而且越寫越蒙,最后寫的腦袋短路了,悲劇啊,說下正解,我們可以枚舉1號競選時的票數,對于每一次枚舉,如果當前有人的票數比1號的x多,那么就把他減少到x-1(肯定是挑選費用最小的),然后把當前的票數加到1身上,最后如果1號的票數大于當前的枚舉票數,枚舉失敗,如果等于,那么就更新最優值,如果小于,就在剩下的沒有選則1的里面挑選幾個最小的補上去,這樣就行了,說到這,可能有人去會想,1不是也要投一票嗎,怎么沒考慮,其實根本不用管1這票投給了誰,因為只有出現這樣的狀態這一票才會有影響x x-1 x-1 x-1 x-1.....但是這個狀態是不存在的,想一下,這個題目每個人最多投一票,如果1的票數為x,那么那個狀態的總票數就是 x + (x - 1) * (n - 1) + 1,其實x是大于等于2的(這個地方自己想,很好想),那么就會得到 2 + (2 - 1) * (n - 1)+ 1 = n + 2,而每個人都一票,總票數是n,所以矛盾,所以不存在那種狀態,所以不用考慮1的那票投給了誰。 ??


#include<stdio.h>
#include<algorithm>
#include<string.h>


#define N 120


using namespace std;


typedef struct
{
? ?int to ,next;
}STAR;


typedef struct
{
? ?int id ,cost;
}NODE;


STAR E[N];
NODE node[N];
int list[N] ,tot;
int ?now[N] ,mark[N] ,MARK[N];
int cost[N];


void add(int a ,int b)
{
? ?E[++tot].to = b;
? ?E[tot].next = list[a];
? ?list[a] = tot;
}


bool camp(NODE a ,NODE b)
{
? ?return a.cost < b.cost;
}


int main ()
{
? ?int t ,n ,i ,j ,a;
? ?scanf("%d" ,&t);
? ?while(t--)
? ?{
? ? ? scanf("%d" ,&n);
? ? ? memset(list ,0 ,sizeof(list)) ,tot = 1;
? ? ? memset(mark ,0 ,sizeof(mark));
? ? ? memset(MARK ,0 ,sizeof(MARK));
? ? ? memset(now ,0 ,sizeof(now));
? ? ? for(i = 2 ;i <= n ;i ++)
? ? ? {
? ? ? ? ?scanf("%d" ,&a);
? ? ? ? ?now[a] ++;
? ? ? ? ?if(a == 1) MARK[i] = 1;
? ? ? ? ?add(a ,i);
? ? ? }
? ? ? for(i = 2 ;i <= n ;i ++)
? ? ? scanf("%d" ,&cost[i]);
? ? ? int star = 1;
? ? ? if(star < now[1]) star = now[1];
? ? ? int min = 1000000000;
? ? ? for(i = star ;i <= n ;i ++)
? ? ? {
? ? ? ? ?for(j = 1 ;j <= n ;j ++)
? ? ? ? ?mark[j] = MARK[j];
? ? ? ? ?
? ? ? ? ?int sum = 0 ,ss = 0;
? ? ? ? ?for(j = 2 ;j <= n ;j ++)
? ? ? ? ?{
? ? ? ? ? ? if(now[j] < i) continue;
? ? ? ? ? ? int id = 0;
? ? ? ? ? ? for(int k = list[j] ;k ;k = E[k].next)
? ? ? ? ? ? {
? ? ? ? ? ? ? ?int to = E[k].to;
? ? ? ? ? ? ? ?if(mark[to]) continue;
? ? ? ? ? ? ? ?node[++id].cost = cost[to];
? ? ? ? ? ? ? ?node[id].id = to;
? ? ? ? ? ? }?
? ? ? ? ? ? sort(node + 1 ,node + id + 1 ,camp);
? ? ? ? ? ??
? ? ? ? ? ? for(int k = 1 ;k <= now[j] - i + 1 ;k ++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ?sum += node[k].cost ;
? ? ? ? ? ? ? ? ss ++ ;
? ? ? ? ? ? ? ? mark[node[k].id] = 1;
? ? ? ? ? ? }
? ? ? ? ?}
? ? ? ? ?
? ? ? ? ?if(ss + now[1] == i)
? ? ? ? ?{
? ? ? ? ? ? if(min > sum) min = sum;
? ? ? ? ?}
? ? ? ? ?else if(ss + now[1] > i)
? ? ? ? ?continue;
? ? ? ? ?int id = 0;
? ? ? ? ?int tmp[N];
? ? ? ? ?for(j = 2 ;j <= n ;j ++)
? ? ? ? ?for(int k = list[j] ;k ;k = E[k].next)
? ? ? ? ?if(!mark[E[k].to])tmp[++id] = cost[E[k].to];
? ? ? ? ?sort(tmp + 1 ,tmp + id + 1);
? ? ? ? ?for(j = 1 ;j <= i - (ss + now[1]) ;j ++)
? ? ? ? ?sum += tmp[j];
? ? ? ? ?if(min > sum) min = sum;
? ? ? }
? ? ? printf("%d\n" ,min);
? ?}
? ?return 0;
}?
? ? ? ? ?

總結

以上是生活随笔為你收集整理的ZOJ3715 竞选班长求最小花费的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 少妇人禽zoz0伦视频 | 日本乱偷人妻中文字幕在线 | 久久高清一区 | 女同视频网站 | 精品一区二区三区中文字幕 | 精品国产免费人成在线观看 | 一级黄片毛片 | 日本一区二区三区中文字幕 | 亚洲欧美综合自拍 | 亚洲天堂免费视频 | 日韩在线观看中文字幕 | 久久va | 男人女人拔萝卜视频 | 免费无遮挡无码永久在线观看视频 | www.av日韩 | 91丝袜呻吟高潮美腿白嫩 | 色视频在线观看 | av福利在线观看 | 婷婷深爱网 | 国产精品毛片av | 超碰在 | 亚洲九区| 免费无码肉片在线观看 | 体感预报日剧 | 97人人射| 亚洲黄色影视 | 另类视频在线观看+1080p | 精品久久久久久久久久久久 | 欧美大片xxx| 97avcc| 成人免费直播 | 国产三级在线看 | 免费在线色视频 | 久久久午夜影院 | 国产成人免费在线观看 | 在线观看国产一级片 | 日本一本高清视频 | 性生交大片免费看l | 国产精品久久成人 | 伊人青青 | 狂野少女电影在线观看国语版免费 | 中文字幕亚洲欧美日韩 | 亚洲永久免费 | 亚洲xxxxx| 色综合天天网 | 奶水旺盛的少妇在线播放 | 九九九久久久久 | 我要色综合天天 | 99热首页| 国产一级网站 | 亚洲香蕉在线观看 | 欧洲美女与动交zozzo | 性欧美久久 | 日韩欧美一级片 | 伊人色综合久久天天 | 无码人妻丰满熟妇区bbbbxxxx | 欧美日韩国产伦理 | 免费黄色网址大全 | 免费黄色国产视频 | 激情五月色综合国产精品 | 欧美一区视频 | 国产精品久久精品 | 成人人伦一区二区三区 | 五月天免费网站 | 毛片基地视频 | 青草视频在线观看视频 | 香蕉久久久久久 | 一卡二卡三卡在线观看 | 新91视频在线观看 | 久草观看视频 | 午夜时刻免费入口 | 久久久久久电影 | 国产一区二区三区在线免费 | 久久com| 国产在线第一页 | 国产性猛交| 在线成人av | av黄色国产 | 日韩欧美在线视频观看 | 色哟哟黄色 | 免费性爱视频 | 一级美女大片 | 色偷偷资源网 | 美女扒开腿让人桶爽原神 | 又黄又爽网站 | 好吊妞视频一区二区三区 | 在线观看视频99 | 成人免费精品视频 | 一区二区传媒有限公司 | av一本二本 | aaa毛片视频| 国产午夜精品一区二区三区欧美 | 91大神小宝寻花在线观看 | 狠狠干狠狠艹 | 日韩mv欧美mv国产网站 | 久久七| 久久久久久久久久久久久久久久久久久久 | 色吊丝网站 | 日本 在线 |