星際爭霸(starcraft)單人戰役模式中有很多供人遊玩的任務關卡。
tokitsukaze新開始了一關單人戰役模式下的任務。在這場戰役中,你要作為指揮官指揮克魯普星區的艾倫人類(terran)來防禦人類的敵人——**異蟲(zerg)的襲擊。
這一次,作為指揮官,你的任務目標是盡可能多的保全人類方所擁有的7個基地。你在這次任務中擁有n個人口單位的兵力。為了防禦異蟲的攻擊,每個基地都有乙個能夠抵擋異蟲攻擊的最小兵力需求l[i],同時每個基地因為有固定的人口上限,分配給該基地的兵力也不得大於上限r[i]。
你需要在任務一開始就為這7個基地做好兵力分配,每個兵都應該分配給乙個基地,即不應該有空閒兵力。如果任何乙個基地被異蟲攻破(分配的兵力大於0,且小於最小兵力需求,導致兵力白白葬送犧牲),或者某個基地的人口超過了人口上限,兵力大於r[i],任務都會直接失敗。
為了避免任務失敗,tokitsukaze決定從一開始就放棄一些基地(即不對這些基地派出兵力)。
請問保證任務成功的條件下,tokitsukaze最多留下多少個基地?特別的,如果任務失敗這種情況下請輸出"0",不含引號。
由於tokitsukaze的星際操作十分流弊,你可以認為如果能夠至少能夠保留乙個基地,任務就一定能夠成功。
第一行輸入乙個t(t≤50000),表示t組資料。對於每組資料:
輸入乙個正整數n(1≤n≤10^9)表示需要分配的兵力總人口。
接下來7行,每行兩個正整數l,r(1≤l≤r≤10^9),分別表示該基地夠抵擋異蟲攻擊的最小兵力需求與該基地的人口上限。
對於每組資料,輸出tokitsukaze最多能夠留下幾個基地,每組資料佔一行。
示例1
4501 1
1 11 1
1 11 1
1 11 1
501 1
20 30
20 30
20 30
1 120 30
20 30
7019 19
10 10
10 10
10 10
10 10
10 10
1 12
1 13 3
3 33 3
3 33 3
3 3
0470
#include using namespace std;
struct sta
s[10];
int main()
if(ml>sum)
select = select >> 1;
j++;
}if(mrmax)
max = con;
}printf("%d\n",max);
}}
當然 這題也可以用 dfs 過 。
附上 我同學過的 emmm 個人沒想寫dfs了 0.0
#include using namespace std;
long long sum1,sum2,n,ans;
struct fun
;fun a[10];
int p[10];
void dfs(long long s,long long suma,long long sumb,long long j)}}
}int main()
if(sum2n)
printf("0\n");
else
}return 0;
}
記錄乙個面試題目
掘金 上看到的乙個筆試題目,記錄並分析總結以下考察點。function foo return this foo.getname function foo.prototype.getname function var getname function function getname 判斷輸出結果 f...
乙個有趣的題目
看到qq群裡有人發了乙個很有意思的題目 如果 昨天是明天就好了,那麼今天就是周五了,請問句中的今天是週幾?晚上睡覺的時候又想起這個問題,發現這個問題還大有文章,其實問題的關鍵在於上面的綠色背景的如果兩個字,既然是如果,那麼思維就可以完全發散,如果時間可以穿越,明天真的可以穿越到昨天,那麼今天其實就是...
乙個c 題目
被人問了c 的乙個題目,簡直長知識哇 includeusing namespace std int i 1 class mycls void echo 這個 是建構函式,括號裡面是他們的初值,然後 初始化的順序是根據定義的次序也就是 private int m nfri int m nsec int...