[18.11.14]GPNU新生熱身賽題解

A. Hello, A + B

題意

每行僅含四個(gè)整數(shù)A, B, C, D (-10^9 ≤ A, B, C, D ≤ 10^9).
0 0 0 0代表輸入結(jié)束, 你不應(yīng)該處理它.
對(duì)于每組數(shù)據(jù), 輸出A+B-C*D.

思路

+/-1e9的數(shù)字用int夠裝
那么1e9*1e9呢揍鸟?
所以要么用long long類(lèi)型(VC++中為int64_t)
足矣摔蓝,如果要用int裝數(shù)尘喝,在計(jì)算和輸出時(shí)候注意
轉(zhuǎn)型long long。//(+/- 9e18)

C代碼實(shí)現(xiàn)

#include <stdio.h>
int main()
{
    long long a,b,c,d;
    while (1)
    {
        scanf("%lld%lld%lld%lld",&a,&b,&c,&d);
        if (!(a || b || c || d))
            break;
        printf("%lld\n",a+b-c*d);
    }
    return 0;
}

B. Money

題意

1元, 3元, 7元, 10元, 30元, 70元, 100元, 300元, 700元, 1000元, 3000元, 7000元, 10000元.
那么對(duì)于貨幣而言, 要湊夠x (1 ≤ x ≤ 10^18) 元至少需要多少?gòu)堚n票?
輸入包含多組測(cè)試數(shù)據(jù).
第一行為一個(gè)整數(shù)n (1 ≤ n ≤ 200000). 表示測(cè)試數(shù)據(jù)的數(shù)量
緊接著為n行, 每行一個(gè)數(shù)字x (1 ≤ x ≤ 10^18).
對(duì)于每組測(cè)試數(shù)據(jù), 輸出湊夠x (1 ≤ x ≤ 10^18) 元至少需要鈔票的數(shù)量.

思路

可以先從最大的鈔票一直往下拿译仗,就可以得到最小了,不出意外,你就WA了
(這種思路本身也是算是一種貪心策略玻褪,不過(guò)本題有特殊情況)
本題算是取巧做出來(lái)的,你至少手動(dòng)分配7-28元這段范圍的鈔票應(yīng)該怎么拿公荧,
然后分析带射,才能理解為什么我這樣寫(xiě)。
出題師兄的代碼實(shí)現(xiàn)方法是DP(動(dòng)態(tài)規(guī)劃)
略修改循狰,可以解決任意貨面值組合的最少取鈔的求解窟社。
用遞歸可以實(shí)現(xiàn)(要優(yōu)化,不要重復(fù)計(jì)算)

C代碼實(shí)現(xiàn)

#include <stdio.h>
const long long tx[17]={-1000,10000,7000,3000,-100,1000,700,300,-10,100,70,30,-1,10,7,3,1};
int main(void)
{
    long long n,x,s,p;
    int i;
    scanf("%lld",&n);
    while (n--)
    {
        scanf("%lld",&x);
        s=0;
        for (i=0;i<17;i++)
        if (tx[i]>0)
        {
            s+=x/tx[i];
            x%=tx[i];
        }else
        {
            p=x/(-tx[i]);
            if (p>13 && p%10>3 && p%10<6)
            {
                s+=2;
                x-=(-tx[i])*14;
            }
        }
        printf("%lld\n",s);
    }
    return 0;
}

C. Light

題意

Edward的房間有N盞燈, 依次被標(biāo)記為1, 2, 3, 4, 5, …, N.
開(kāi)始時(shí)所有燈都被關(guān)閉. Edward先按下所有編號(hào)為A的倍數(shù)的燈對(duì)應(yīng)的開(kāi)關(guān), 所有編號(hào)為A的倍數(shù)的燈都將亮起. 然后再按下所有編號(hào)為B的倍數(shù)的燈對(duì)應(yīng)的開(kāi)關(guān), 其中關(guān)著的燈將會(huì)亮起, 開(kāi)著的燈將被關(guān)閉. 最終, Edward的房間亮起了多少盞燈?
輸入包含多組測(cè)試數(shù)據(jù). 每組數(shù)據(jù)為三個(gè)數(shù)字N, A, B (1 ≤ A, B ≤ N ≤ 10^18). 輸入以EOF結(jié)束.
對(duì)于每組測(cè)試數(shù)據(jù), 輸出最終Edward的房間亮起的燈的數(shù)量.

思路

數(shù)據(jù)long long可裝,
有n/a+n/b次開(kāi)關(guān)燈操作
n/(a和b的最小公約數(shù))次重復(fù)(也就是操作了兩次检眯,應(yīng)為關(guān)燈的狀態(tài))
這里的唯一坑點(diǎn)俯逾,就只有a和b的最小公倍數(shù)了,它會(huì)導(dǎo)致數(shù)值溢出匣吊。
看數(shù)據(jù)a和b小于n沒(méi)錯(cuò)盗扒,所以能用long long裝下,但是缀去,當(dāng)a和b足夠大
并且他們的最小公約數(shù)足夠小時(shí)侣灶。那么這個(gè)數(shù)值會(huì)大于n,也會(huì)大于longlong的范圍
那么不夠裝缕碎,只能截取這個(gè)數(shù)的64個(gè)位(二進(jìn)制的位)了褥影,所以,得到的值可能會(huì)是
比n小的數(shù)咏雌,也可能是一個(gè)負(fù)數(shù)凡怎。這也是溢出的意思。
由于此題的特殊性赊抖,若是這個(gè)最小公倍數(shù)大于n统倒,其實(shí)也就沒(méi)有重復(fù)。
p是最小公倍數(shù)氛雪,所以
從v=n/(a*b/p)我們可以改為
v=n/b/(a/p);這樣就有效防止了溢出房匆,
也不需要用所謂的大數(shù)(高精度)處理

C源代碼

#include <stdio.h>
long long gcd(long long a,long long b)
{ return (b==0) ? a : gcd(b,a%b); }
int main(void)
{
    long long n,a,b,p,v,v1,v2,sum;
    while (~scanf("%lld%lld%lld",&n,&a,&b))
    {
        p=(a>b)?gcd(a,b):gcd(b,a);
        v1=n/a;
        v2=n/b;
        v=n/b/(a/p);
        sum=v1-v+v2-v;
        printf("%lld\n",sum);
    }
    return 0;
}

D. Max Sum of Subsequence

題意

給定序列{a1, a2, a3, … , an}, 求它的最大連續(xù)子序列的和, 它的開(kāi)始位置和結(jié)束位置..
輸入包含多組測(cè)試數(shù)據(jù). 輸入以EOF結(jié)束.
第一行為整數(shù)n (1 ≤ n ≤ 100000).
第二行包含n個(gè)整數(shù). 這n個(gè)整數(shù)的范圍在 -100000 到 100000之間.
對(duì)于每組輸入, 你應(yīng)輸出一行. 格式為: ”Case %T: %SUM %BEG %END”.其中%T為測(cè)試數(shù)據(jù)的編號(hào). %SUM為測(cè)試數(shù)據(jù)的最大連續(xù)子序列的和. %BEG為子序列的開(kāi)始位置. %END為子序列的結(jié)束位置. 可能有多個(gè)連續(xù)子序列的和相等, 不過(guò)你應(yīng)該返回第一個(gè)子序列的開(kāi)始和結(jié)束位置.

思路

只要一路加上去,要求i~j的和
只要a[j]-a[i-1]就可以得到
參考數(shù)列Sn=a1+a2+....+an
接下來(lái)就是選點(diǎn)了报亩。
假設(shè)右邊某一點(diǎn)是序列的結(jié)尾浴鸿,再按以上思路,
只需要通過(guò)記錄和不斷判斷找到a[i-1]最小的位置就行了弦追。

C源代碼

#include <stdio.h>
#define inf 1e18
long long a[100003];
int main(void)
{
    long long t=0,mx,n,i,j,x,y,mn;
    while (~scanf("%lld",&n))
    {
        for (i=1;i<=n;i++)
        {
            scanf("%lld",a+i);
            a[i]+=a[i-1];
        }
        t++;
        mx=-inf;
        x=1;
        y=1;
        mn=0;
        for (i=1;i<=n;i++)
        {
            if (a[i]-a[mn]>mx)
            {
                mx=a[i]-a[mn];
                x=mn+1;
                y=i;
            }
            if (a[mn]>a[i])
                mn=i;
        }
        printf("Case %lld: %lld %lld %lld\n",t,mx,x,y);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末岳链,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子劲件,更是在濱河造成了極大的恐慌掸哑,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件零远,死亡現(xiàn)場(chǎng)離奇詭異苗分,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)遍烦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)俭嘁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人服猪,你說(shuō)我怎么就攤上這事供填」赵疲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵近她,是天一觀的道長(zhǎng)叉瘩。 經(jīng)常有香客問(wèn)我,道長(zhǎng)粘捎,這世上最難降的妖魔是什么薇缅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮攒磨,結(jié)果婚禮上泳桦,老公的妹妹穿的比我還像新娘。我一直安慰自己娩缰,他們只是感情好灸撰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著拼坎,像睡著了一般浮毯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泰鸡,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天债蓝,我揣著相機(jī)與錄音,去河邊找鬼盛龄。 笑死饰迹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的讯嫂。 我是一名探鬼主播蹦锋,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼欧芽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起葛圃,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤千扔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后库正,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體曲楚,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年褥符,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了龙誊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喷楣,死狀恐怖趟大,靈堂內(nèi)的尸體忽然破棺而出鹤树,到底是詐尸還是另有隱情,我是刑警寧澤逊朽,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布罕伯,位于F島的核電站,受9級(jí)特大地震影響叽讳,放射性物質(zhì)發(fā)生泄漏追他。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一岛蚤、第九天 我趴在偏房一處隱蔽的房頂上張望邑狸。 院中可真熱鬧,春花似錦涤妒、人聲如沸推溃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)铁坎。三九已至,卻和暖如春犁苏,著一層夾襖步出監(jiān)牢的瞬間硬萍,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工围详, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朴乖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓助赞,卻偏偏與公主長(zhǎng)得像买羞,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雹食,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 專業(yè)考題類(lèi)型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚(yú)閱讀 8,995評(píng)論 0 13
  • 選擇題部分 1.(),只有在發(fā)生短路事故時(shí)或者在負(fù)荷電流較大時(shí),變流器中才會(huì)有足夠的二次電流作為繼電保護(hù)跳閘之用畜普。...
    skystarwuwei閱讀 12,925評(píng)論 0 7
  • 從去年底到現(xiàn)在,看了一些喜歡的樂(lè)隊(duì)演出群叶,木瑪吃挑、惘聞、扭機(jī)街立、李志舶衬、痛仰,還有樂(lè)堡和草莓音樂(lè)節(jié)赎离,大多是一個(gè)人逛犹,一個(gè)人在...
    DifferentLives閱讀 283評(píng)論 2 3
  • 本案是日本刑偵史上的未解決事件。 1990年6月9日傍晚,梅雨季已經(jīng)比往年快了一步踏進(jìn)關(guān)西地區(qū)虽画。 京都府下京區(qū)的梅...
    百簽閱讀 2,081評(píng)論 34 24