因為部分字元是所以空著請諒解
猜數遊戲(number)
今天你交到了乙個新的friend, 他想要考考你。
於是他把自己的**號碼寫成了一系列的英文單詞,
比如說012就寫成了zeroonetwo
然後,他幹了一件很惡趣味的事,那就是把這個字串 打ꞏ亂ꞏ了
比如上面的字串可能就變成owtzeoorne
他想要考考你你能不能從這個打亂的字串 還原出原來的**號碼
正常情況下這當然是不可能的,不過他給了你乙個提示,你能夠確定的是,它的**號碼是不降的,也就是說,只 會有001122這樣的號碼,而不會有010122這樣的號碼
題目資料保證有唯一解
輸入格式
輸入一行乙個字串,只包含大寫字母
字串由以下單詞拼接並打亂而成,zero, one, two, three, four, five, six, seven, eight, nine
輸出格式
輸出一行字串,表示還原的**號碼,題目保證每個輸入都有唯一的解
資料規模及約定
對於 的資料
對於 的資料
樣例輸入
ozonetower
weighfoxtourist
ourneonfoe
ether
樣例輸出
0122468
1143
這道題目就是先通過一些某個字元只有它有來確定其的個數,乙個乙個確定下來
#includeusing namespace std;
int main()
,shu[10]={};
for(int i=0;i暴力快遞 (express)
題目描述
有家快遞公司向來以暴力出名,比如他們一般是靠丟來把乙個包裹從地上搬到車上的。
不過暴力快遞對員工的體能消耗也是很嚴重的,他們的老闆希望找到乙個折衷的方案。
具體來說,現在有 個快遞員,編號從 到 ,其中第 個快遞員就在車上負責裝車所以他是不動的。
每個人在高為 寬為 的區域的某個位置,以座標 來記,每快遞員可以幹以下 件事情:
1. 選擇前後左右四個方向之一,把快遞往那個方向丟 公尺( 是正數),若如此做,他的疲勞值增加 . 2. 選擇乙個方向,移動 公尺,若如此做,它的疲勞值增加 3. 把包裹放下 4. 如果地上有包裹,撿起包裹
一開始包裹在編號 的快遞員手裡,只有手裡有快遞的快遞員可以做1. 和3.,所有快遞員都可以做2. 和4.
快遞員可以重疊
你希望讓快遞員疲勞值之和盡可能小
輸入格式
第一行輸入兩個整數 和
第二行輸入 個整數
第三行輸入乙個整數 表示快遞員的個數
接下來 行每行兩個整數 表示這個快遞員所在的位置
資料規模及約定
對於 的資料
對於 的資料
對於另外 的資料
樣例輸入
6 5 1 3 6 3 1 1 0 4 6 5
3 3 0 50 10 2 0 0 3 3
4 3 0 15 10 2 0 0 4 3
4 6 0 5 1000 6 3 1 4 6 3 0 3 0 4 0 0 4
樣例輸出
2660
452020
提示
本題時間限制3秒
這題講的人沒有講好清楚
據說是spfa
因為乙個人傳到另個人最多丟一次,要麼走x要麼走y
傳了之後就沒他事了。
超越光速(ftl)
題目描述
宇宙大國f國通過亞空間通道連線分散在宇宙各處的殖民地。
具體來說就是從編號星球 出發,一直到編號 的星球。而這條通道上執行有兩種不同的超光速飛船。
一種是在帝國的每個殖民地都停船上下客的慢速飛船,對它來說從站點 進入超光速到達站點 需要花費 分鐘。
另一種是快速飛船,它只在其中 個星球停泊,分別是 . 這種飛船從星球 航行到站點 需要花費 分鐘。
為了提高帝國交通系統地執行效率,也就是從 號站點出發,坐不超過 分鐘的飛船(任意一種),能到達的城市數 量(不包括 號)盡可能多。 f國決定啟用一種新型飛船,它的執行速度是 . 現在大家在正考慮這種飛船要在哪些 站點經停,目前的要求是這樣的:
1. 之前的快速飛船經停的站點,新的飛船也必須要停 2. 這種飛船必須在恰好 個站點經停
因為是超光速飛船,任意時刻乘客都可以在某個站點搭乘自己想要坐上的飛船,這個時間可以忽略不計。也就是 說,乘客可以在某個星球下船,然後瞬間換乘到經過這個星球的另一種速度船上。
交通部門想要知道,為了使得航線線路的執行效率最高,新型飛船的最佳的站點設定是什麼樣的。
注意,這裡的航行是從星球 到星球 , 哪怕他不在這顆星球停下來,路過他也是要花時間的
輸入格式
第一行輸入三個整數 . 代表f國一共 個星球, 快速飛船停泊的站點數量 ,以及中速飛船規劃中的站點數量 .
第二行輸入三個整數 表示三種船經過一站需要的時間。
第三行包含乙個整數 , 做不超過 分鐘的飛船(任意一種),從 號星球能到達的星球數量(不包括 號)盡可能 多。
接下來 行,每行乙個整數 表示快速飛船經停的站點 .
輸出格式
輸出乙個整數,表示在 分鐘內能到達的最多的站點數量(不包括1號站點)。
資料規模及約定
對於 的資料,
對於 的資料,
對於另外 的資料
樣例輸入
10 3 5 10 3 5 30 1 6 10
10 3 5 10 3 5 25 1 6 10
90 10 12 100000 1000 10000 10000 1 10 20 30 40 50 60 70 80 90
12 3 4 10 1 2 30 1 11 12
300 8 16 345678901 123456789 234567890 12345678901 1 10 77 82 137 210 297 300
1000000000 2 3000 1000000000 1 2 1000000000 1 1000000000
樣例輸出 87
28723000
樣例1的解釋
除了 號星球都可以在 分鐘內到達
快速飛船能到達1 6 10, 因為快速飛船的速度是 , 這三個目的地都可以在 的時間內到達
令新型飛船停靠1 5 6 8 10
對於站點 可以直接慢速前進
對於站點 , 可以做快速飛船到 ,再坐 分鐘慢速到達,一共 分鐘
對於站點 , 可以做快速飛船到 ,再做 分鐘新型飛船到達,一共也是 分鐘
對於站點 , 我們到不了
這樣2 3 4 5 6 7 8 10都可以到達
一共是 個站點
這一題用貪心
因為之前沒有看到解釋一直誤解題意
先考慮直接坐慢的能坐到哪
因為快的直接到它自己的乙個站點節約時間
到乙個快的能直接到的乙個站點
再考慮快的在相鄰兩個站點去掉之前的時間在通過慢的能到哪
因為中的必須要包括快的站點,所以自由的只有中的減快的
在再該快的兩點的慢的能道達的最遠位置設定中的站點
這樣就能在該種情況下讓增加的能到的站點便得盡可能地多
再把每兩點的情況都遍歷出來
選出最優的算出最後可以的站點就好了
還有個是在兩個快的之間如果有多個中的,增加的站點是依次遞增的
所以前面的一定比後面的先
所以可以直接把每個設定的中的增加的到的數量入堆到時候依次輸出就可以了
完全不可靠的**只是我的大致思路
:#includeusing namespace std;
#define c getchar()-48
#define ll long long
inline long long read()
ll n,m,k,a,b,c,t,s[100000010];
int main()
maxj+=m-x+1;//慢快總共能直接到達的站點
priority_queue, greater>q;//處理每個增加的站點
//work
for(int i=x;i<=m;i++)
{ ll jj=(s[i-1]-1)*b,qjj; //jj用快的前面用的時間 qjj前個中的
lj=0;//lj累計用的中的
qjj=s[i-1];//前個中的
dq=qjj+(t-jj)/a;//當前站點
while(dq0||lj>=k-m)//前個最後的站點不能超過 增加中的必須要有 用的中的不超過自由的中的
{lj++;//用的中的
jj+=(dq+1-(qjj))*c;//換中的全部用的時間
qjj=dq+1;//前個中的
int jjj=(t-jj)/a; //增加的站點
dq+=jjj;//當前站點
if(dq0||lj>=k-m)//前個最後的站點不能超過 增加中的必須要有 用的中的不超過自由的中的
{lj++;//用的中的
jj+=(dq+1-(qjj))*c;//換中的全部用的時間
qjj=dq+1;//前個中的
int jjj=(t-jj)/a; //增加的站點
dq+=jjj;//當前站點
if(dq
第一次集訓賽
a misha and changing handles codeforces 501b 簡述 cf上可以改網名,輸入多個新舊網名,輸出有幾個人 以及他們最初的網名和最終的網名 include include includeusing namespace std int main if flag n...
暑假第一次積分賽
本次積分賽菜的就不談了,和前邊的大佬差距太大了,但是下來補題的時候發現許多題靜下來細細想想都是可以做出來的,都是思維題而已,可惜是缺少了高中時候的鑽研精神啊!for int i 0 i就是找出每乙個a前後有幾個q,用乙個結構體儲存,之後跑一遍相乘 b 排序去重 set跑一遍就好 c就是開頭說的思維問...
藍橋杯第一次集訓
public class main public class main system.out.println string.format 2f pay 把abcd.s共19個字母組成的序列重複拼接106次,得到長度為2014的串。接下來刪除第1個字母 即開頭的字母a 以及第3個,第5個等所有奇數字置...