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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

P4774 [NOI2018]屠龙勇士

發(fā)布時(shí)間:2024/7/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P4774 [NOI2018]屠龙勇士 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述

小 D 最近在網(wǎng)上發(fā)現(xiàn)了一款小游戲。游戲的規(guī)則如下:

  • 游戲的目標(biāo)是按照編號(hào) 1→n1 \rightarrow n1n 順序殺掉 nnn 條巨龍,每條巨龍擁有一個(gè)初始的生命值 aia_iai? 。同時(shí)每條巨龍擁有恢復(fù)能力,當(dāng)其使用恢復(fù)能力時(shí),它的生命值就會(huì)每次增加 pip_ipi? ,直至生命值非負(fù)。只有在攻擊結(jié)束后且當(dāng)生命值 恰好000 時(shí)它才會(huì)死去。

  • 游戲開(kāi)始時(shí)玩家擁有 mmm 把攻擊力已知的劍,每次面對(duì)巨龍時(shí),玩家只能選擇一 把劍,當(dāng)殺死巨龍后這把劍就會(huì)消失,但作為獎(jiǎng)勵(lì),玩家會(huì)獲得全新的一把劍。 小 D 覺(jué)得這款游戲十分無(wú)聊,但最快通關(guān)的玩家可以獲得 ION2018 的參賽資格, 于是小 D 決定寫(xiě)一個(gè)笨笨的機(jī)器人幫她通關(guān)這款游戲,她寫(xiě)的機(jī)器人遵循以下規(guī)則:

  • 每次面對(duì)巨龍時(shí),機(jī)器人會(huì)選擇當(dāng)前擁有的,攻擊力不高于巨龍初始生命值中攻擊力最大的一把劍作為武器。如果沒(méi)有這樣的劍,則選擇 攻擊力最低 的一把劍作為武器。

  • 機(jī)器人面對(duì)每條巨龍,它都會(huì)使用上一步中選擇的劍攻擊巨龍固定的 xxx 次,使巨龍的生命值減少 x×ATKx \times ATKx×ATK 。

  • 之后,巨龍會(huì)不斷使用恢復(fù)能力,每次恢復(fù) pip_ipi? 生命值。若在使用恢復(fù)能力前或某一次恢復(fù)后其生命值為 000 ,則巨龍死亡,玩家通過(guò)本關(guān)。

那么顯然機(jī)器人的攻擊次數(shù)是決定能否最快通關(guān)這款游戲的關(guān)鍵。小 D 現(xiàn)在得知了每條巨龍的所有屬性,她想考考你,你知道應(yīng)該將機(jī)器人的攻擊次數(shù) xxx 設(shè)置為多少,才能用最少的攻擊次數(shù)通關(guān)游戲嗎?

當(dāng)然如果無(wú)論設(shè)置成多少都無(wú)法通關(guān)游戲,輸出 ?1-1?1 即可。

輸入格式

第一行一個(gè)整數(shù) TTT,代表數(shù)據(jù)組數(shù)。

接下來(lái) TTT 組數(shù)據(jù),每組數(shù)據(jù)包含 555 行。

  • 每組數(shù)據(jù)的第一行包含兩個(gè)整數(shù),nnn 和 mmm ,代表巨龍的數(shù)量和初始劍的數(shù)量;

  • 接下來(lái)一行包含 nnn 個(gè)正整數(shù),第 iii 個(gè)數(shù)表示第 iii 條巨龍的初始生命值 aia_iai? ;

  • 接下來(lái)一行包含 nnn 個(gè)正整數(shù),第 iii 個(gè)數(shù)表示第 iii 條巨龍的恢復(fù)能力 pip_ipi? ;

  • 接下來(lái)一行包含 nnn 個(gè)正整數(shù),第 iii 個(gè)數(shù)表示殺死第 iii 條巨龍后獎(jiǎng)勵(lì)的劍的攻擊力;

  • 接下來(lái)一行包含 mmm 個(gè)正整數(shù),表示初始擁有的 mmm 把劍的攻擊力。

輸出格式

一共 TTT 行。

iii 行一個(gè)整數(shù),表示對(duì)于第 iii 組數(shù)據(jù),能夠使得機(jī)器人通關(guān)游戲的最小攻擊次數(shù) xxx ,如果答案不存在,輸出 ?1-1?1。

輸入輸出樣例

輸入 #1 2 3 3 3 5 7 4 6 10 7 3 9 1 9 1000 3 2 3 5 6 4 8 7 1 1 1 1 1 輸出 #1 59 -1

說(shuō)明/提示

第一組數(shù)據(jù):

  • 開(kāi)始時(shí)擁有的劍的攻擊力為 {1,9,10}\{1,9,10\}{1,9,10},第 111 條龍生命值為 333,故選擇攻擊力為 111 的劍,攻擊 595959 次,造成 595959 點(diǎn)傷害,此時(shí)龍的生命值為 ?56-56?56,恢復(fù) 14 次后生命值恰好為 000,死亡。

  • 攻擊力為 111 的劍消失,拾取一把攻擊力為 777 的劍,此時(shí)擁有的劍的攻擊力為 {7,9,10}\{7,9,10\}{7,9,10},第 2 條龍生命值為 555,故選擇攻擊力為 777 的劍,攻擊 595959 次,造成 413413413 點(diǎn)傷害,此時(shí)龍的生命值為 ?408-408?408,恢復(fù) 686868 次后生命值恰好為 000,死亡。

  • 此時(shí)擁有的劍的攻擊力為 {3,9,10}\{3,9,10\}{3,9,10},第 333 條龍生命值為 777,故選擇攻擊力為 333 的劍,攻擊 595959 次,造成 177177177 點(diǎn)傷害,此時(shí)龍的生命值為 ?170-170?170,恢復(fù) 171717 次后生命值恰好為 0,死亡。

  • 沒(méi)有比 595959 次更少的通關(guān)方法,故答案為 595959。

第二組數(shù)據(jù): 不存在既能殺死第一條龍又能殺死第二條龍的方法,故無(wú)法通關(guān),輸出 ?1-1?1。

【子任務(wù)】

測(cè)試點(diǎn)編號(hào)nnnmmmpip_ipi?aia_iai?攻擊力其他限制
1≤105\le 10^5105=1=1=1=1=1=1≤105\le 10^5105=1=1=1無(wú)
2≤105\le 10^5105=1=1=1=1=1=1≤105\le 10^5105=1=1=1無(wú)
3≤105\le 10^5105=1=1=1=1=1=1≤105\le 10^5105≤105\le 10^5105無(wú)
4≤105\le 10^5105=1=1=1=1=1=1≤105\le 10^5105≤105\le 10^5105無(wú)
5≤103\le 10^3103≤103\le 10^3103≤105\le 10^5105≤105\le 10^5105≤105\le 10^5105特性 1、特性 2
6≤103\le 10^3103≤103\le 10^3103≤105\le 10^5105≤105\le 10^5105≤105\le 10^5105特性 1、特性 2
7≤103\le 10^3103≤103\le 10^3103≤105\le 10^5105≤105\le 10^5105≤105\le 10^5105特性 1、特性 2
8=1=1=1=1=1=1≤108\le 10^8108≤108\le 10^8108≤106\le 10^6106特性 1
9=1=1=1=1=1=1≤108\le 10^8108≤108\le 10^8108≤106\le 10^6106特性 1
10=1=1=1=1=1=1≤108\le 10^8108≤108\le 10^8108≤106\le 10^6106特性 1
11=1=1=1=1=1=1≤108\le 10^8108≤108\le 10^8108≤106\le 10^6106特性 1
12=1=1=1=1=1=1≤108\le 10^8108≤108\le 10^8108≤106\le 10^6106特性 1
13=1=1=1=1=1=1≤108\le 10^8108≤108\le 10^8108≤106\le 10^6106特性 1
14=105=10^5=105=105=10^5=105=1=1=1≤108\le 10^8108≤106\le 10^6106無(wú)特殊限制
15=105=10^5=105=105=10^5=105=1=1=1≤108\le 10^8108≤106\le 10^6106無(wú)特殊限制
16≤105\le 10^5105≤105\le 10^5105所有 pip_ipi? 是質(zhì)數(shù)≤1012\le 10^{12}1012≤106\le 10^6106特性 1
17≤105\le 10^5105≤105\le 10^5105所有 pip_ipi? 是質(zhì)數(shù)≤1012\le 10^{12}1012≤106\le 10^6106特性 1
18≤105\le 10^5105≤105\le 10^5105無(wú)特殊限制≤1012\le 10^{12}1012≤106\le 10^6106特性 1
19≤105\le 10^5105≤105\le 10^5105無(wú)特殊限制≤1012\le 10^{12}1012≤106\le 10^6106特性 1
20≤105\le 10^5105≤105\le 10^5105無(wú)特殊限制≤1012\le 10^{12}1012≤106\le 10^6106特性 1

特性 1 是指:對(duì)于任意的 iii,ai≤pia_i \le p_iai?pi?

特性 2 是指:lcm?(pi)≤106\operatorname{lcm}(p_i) \le 10^6lcm(pi?)106,即所有 pip_ipi?最小公倍數(shù) 不大于 10610^6106。

對(duì)于所有的測(cè)試點(diǎn),T≤5T \le 5T5,所有武器的攻擊力 ≤106\le 10^6106,所有 pip_ipi? 的最小公倍數(shù) ≤1012\le 10^{12}1012。

保證 T,n,m T, n, m T,n,m 均為正整數(shù)。

【提示】

你所用到的中間結(jié)果可能很大,注意保存中間結(jié)果的變量類(lèi)型。

#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #include<set> #pragma GCC optimize(2) using namespace std; typedef long long LL; const int maxn = 1e5 + 10 ; LL a[maxn],p[maxn],atk[maxn],x,y,d; multiset<LL> sw;inline LL read() {LL w=1,s=0; char ch=getchar();while(ch<'0' || ch>'9'){if(ch=='-')w=-1; ch=getchar();}while(ch>='0' && ch<='9'){s=s*10+ch-'0'; ch=getchar();}return w*s; } void ext_gcd(LL a,LL b,LL &d,LL &x,LL &y) {if (b==0){d=a;x=1;y=0;return;}ext_gcd(b,a%b,d,y,x); y-=a/b*x; }inline LL ksc(LL x,LL y,LL p){LL z=(long double)x/p*y;LL res=(unsigned long long)x*y-(unsigned long long)z*p;return (res+p)%p; }int main() {LL T,n,m,k,mx,c;T=read();begin:while(T--){n=read();m=read();sw.clear();register multiset<LL>::iterator it;for(int i=1;i<=n;i++) a[i]=read();for(int i=1;i<=n;i++) p[i]=read();for(int i=1;i<=n;i++) atk[i]=read();for(int i=1;i<=m;i++)sw.insert(read());mx=c=0;m=1;for(int i=1;i<=n;i++){it=sw.upper_bound(a[i]);if(sw.begin()!=it) it--;k=*it;sw.erase(it);sw.insert(atk[i]);mx=max(mx,(a[i]-1)/k+1);//更新限制k%=p[i];a[i]%=p[i];if(!k && !p[i]) continue;ext_gcd(k,p[i],d,x,y);p[i]/=d;a[i]=ksc(a[i]/d,(x%p[i]+p[i])%p[i],p[i]);ext_gcd(m,p[i],d,x,y);if((a[i]-c)%d){puts("-1");goto begin;}m=m/d*p[i];c=(c+ksc( ksc(m/p[i],((a[i]-c)%m+m)%m,m) , (x%m+m)%m , m))%m;}if(c>=mx) printf("%lld\n",c);else printf("%lld\n",c+m*((mx-c-1)/m+1));}return 0; }

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/hfang/p/11256752.html

總結(jié)

以上是生活随笔為你收集整理的P4774 [NOI2018]屠龙勇士的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 国产精品一区二区无码免费看片 | 庆余年三 | 欧美综合久久久 | 中文在线观看av | 亚洲免费国产视频 | 51精品国产人成在线观看 | 草莓巧克力香氛动漫的观看方法 | japanese24hdxxxx中文字幕 | 国模私拍一区二区 | 91九色视频 | 国产资源视频 | 欧美另类在线视频 | 国产精品第3页 | 国产香蕉97碰碰碰视频在线观看 | 日韩三区四区 | 中文字幕女同 | 欧美在线一二 | 日韩一区二区三免费高清在线观看 | 男女污污网站 | 浪潮av色 | 国产欧美专区 | 色屁屁在线 | 无码国模国产在线观看 | 四川丰满少妇被弄到高潮 | 久草五月 | 日爽夜爽| 免费在线观看亚洲 | 草草视频网站 | 91调教视频 | 伊人成长网 | 日韩一级免费毛片 | 欧美顶级少妇做爰hd | 奇米av在线 | 日韩手机在线观看 | 亚洲最新网址 | 好av| 亚洲色域网 | 在线观看av网 | av网址免费 | 欧美性一区二区三区 | 免费成人黄色网 | 欧美日本道 | 精品少妇人妻av一区二区 | 三级久久| 91亚洲精品国偷拍 | 日韩www | 裸体男女树林做爰 | 亚洲精品综合 | 夜夜伊人| 国产精品久久久久久久久久东京 | 制服丝袜av一区二区三区下载 | 能在线看的av | 不卡一区二区在线 | 婷婷色六月 | 久久久久一区二区 | 亚洲欧美经典 | 致命弯道8在线观看免费高清完整 | 女人17片毛片60分钟 | 日韩中文av| 丝袜脚交免费网站xx | 污的视频在线观看 | www.天堂av| 久久精品噜噜噜成人 | 另类综合在线 | a猛片| 91精品国产自产91精品 | 欧美视频第一页 | 五月天中文字幕 | 狠狠操狠狠摸 | 亚洲少妇一区二区三区 | 阿v天堂网 | 成人91 | 91网址在线播放 | 密臀av在线 | 国产不卡精品视频 | 黑人巨大精品 | 天天干天天操天天射 | 久久1024 | 黄色一级免费网站 | 欧美一区二区黄片 | 林天顾悦瑶笔趣阁 | 激情文学88 | 两女双腿交缠激烈磨豆腐 | 成人首页| 国内精品免费视频 | 好紧好爽再浪一点视频 | 女人天堂av | 欧美综合视频在线观看 | 亚洲女人初尝黑人巨大 | 欧美久草 | 久久神马 | 日韩女优在线观看 | 欧美激情中文字幕 | 国产精品久草 | 香蕉久久夜色 | 国产一级片网站 | 亚洲码无人客一区二区三区 | 毛片在线不卡 | 日韩亚洲欧美一区 |