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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【USACO】 贪婪的礼物送礼者

發(fā)布時(shí)間:2024/5/14 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【USACO】 贪婪的礼物送礼者 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題 A: 貪婪的禮物送禮者
時(shí)間限制: 1 Sec 內(nèi)存限制: 128 MB
題目描述

對(duì)于一群要互送禮物的朋友,你要確定每個(gè)人送出的禮物比收到的多多少(and vice versa for those who view gift giving with cynicism)。
在這一個(gè)問題中,每個(gè)人都準(zhǔn)備了一些錢來送禮物,而這些錢將會(huì)被平均分給那些將收到他的禮物的人。
然而,在任何一群朋友中,有些人將送出較多的禮物(可能是因?yàn)橛休^多的朋友),有些人有準(zhǔn)備了較多的錢。
給出一群朋友, 沒有人的名字會(huì)長于 14 字符,給出每個(gè)人將花在送禮上的錢,和將收到他的禮物的人的列表,
請(qǐng)確定每個(gè)人收到的比送出的錢多的數(shù)目。

輸入

第 1 行:

人數(shù)NP,2<= NP<=10

第 2到 NP+1 行:

這NP個(gè)在組里人的名字?一個(gè)名字一行

第NP+2到最后:

這里的NP段內(nèi)容是這樣組織的:
第一行是將會(huì)送出禮物人的名字。
第二行包含二個(gè)數(shù)字:?第一個(gè)是原有的錢的數(shù)目(在0到2000的范圍里),第二個(gè)NGi是將收到這個(gè)送禮者禮物的人的個(gè)數(shù) 如果 NGi 是非零的, 在下面 NGi 行列出禮物的接受者的名字,一個(gè)名字一行。

輸出

輸出 NP 行
每行是一個(gè)的名字加上空格再加上收到的比送出的錢多的數(shù)目。
對(duì)于每一個(gè)人,他名字的打印順序應(yīng)和他在輸入的2到NP+1行中輸入的順序相同。所有的送禮的錢都是整數(shù)。
每個(gè)人把相同數(shù)目的錢給每位要送禮的朋友,而且盡可能多給,不能給出的錢被送禮者自己保留。

樣例輸入

5 dave laura owen vick amr dave 200 3 laura owen vick owen 500 1 dave amr 150 2 vick owen laura 0 2 amr vick vick 0 0

樣例輸出

dave 302 laura 66 owen -359 vick 141 amr -150

題意描述:
一些人給一些人送禮,當(dāng)然送禮的人也會(huì)收到一些禮物,問每個(gè)人收到的禮物比送出的禮物多多少?
解題思路:
簡單的數(shù)據(jù)結(jié)構(gòu)問題,將收到的禮物和送出去的禮物分別存到兩個(gè)數(shù)組里面最后減一下就行,在寫的時(shí)候無非是討論收入和送出禮物兩種情況,也就是討論送出禮物的價(jià)值,和收到禮物的人的情況
AC代碼:

#include<stdio.h> #include<string.h> struct Lnode {char name[50];int money;int money1; }s[20]; int main() {char str[50],str1[50];int i,j,k,num,m,T,u,v;while(scanf("%d", &T)!=EOF){for(i=1; i<=T; i++){scanf("%s", s[i].name);s[i].money=0;s[i].money1=0;}for(i=1; i<=T; i++){scanf("%s", str);scanf("%d %d", &k,&num);for(j=1; j<=T; j++)//找人 {if(strcmp(s[j].name,str)==0){u=j;break;}}if(num==0)//如果沒人收禮物那就不用討論收到//禮物的多少和送出多少禮物continue;else if(k==0)//不送出禮物但是有人收這就要求將//收禮物的人的名字輸入不需進(jìn)行任何其他操作{for(v=1; v<=num; v++)scanf("%s", str1);}else if(k!=0&&num!=0) {s[u].money=k-k%num;for(j=1; j<=num; j++){scanf("%s", str1);for(v=1; v<=T; v++){if(strcmp(str1,s[v].name)==0)s[v].money1+=k/num;}}} }for(int t=1; t<=T; t++)printf("%s %d\n", s[t].name,s[t].money1-s[t].money);}return 0; }

總結(jié)

以上是生活随笔為你收集整理的【USACO】 贪婪的礼物送礼者的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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