題目位址
這道題本身不難,難在題目要求的格式上,所以新手多數會卡著格式不過關而不能ac。空白行就是在endl後還要endl一次,而且要在最後一次輸出中不輸出空白行就行了。
至於大數加法可以參考這份部落格 大數專題
#include
#include
#include
#include
using
namespace std;
string fir,sec;
vector<
int>
sum(vector<
int>a,vector<
int>b)
if(flag) c.
push_back
(flag)
;return c;
}int
main()
return0;
}
題目位址
這道題是在《挑戰程式設計競賽》中看到的,每次看到這道題我都反思著要多個角度看題,當然角度是提前學習過的角度,不能異想天開。
而這道題便是換了乙個角度看題,題中螞蟻前進如果碰到另乙隻螞蟻便會掉頭,另乙隻螞蟻也是。題意是要我們找到全部螞蟻走出竿子的最長時間和最短時間。
每只螞蟻的初始方向有兩種,而很容易想到二進位制列舉所有可能,然後模擬求時間最終找出最短和最長時間。但是螞蟻數有106
10^6
106所以不可能。那麼如果兩隻螞蟻相遇互相掉頭其實就相當於互相穿過彼此(畢竟螞蟻速度都一樣),那麼最長時間就是求最遠離竿子邊緣的距離,最短同理。那麼每只螞蟻的向左和向右中找出最大值便是最長時間,最小值便是最小時間,那麼時間複雜度就是是o(n)了。
#include
using
namespace std;
const
int max_n=
1e6+5;
int l,n;
int x[max_n]
;int
main
(void
)return0;
}
題目位址
走迷宮是標準的bfs,所以會就還得寫的快,不會就跟要抓緊學。bfs需要佇列用來儲存每一步的鄰點,從而達到由近及遠。直到隊列為空就是走到頭了。
而這道題還要求輸出這個最短路,所以還要儲存走的路。
'''
**就不說了,畢竟是模板題,嘿嘿?
'''
題目位址
'''
模板題就不用題解了吧!!!
:)'''
題目位址
此題是一道數學題,也是一道技巧題,也是不能直接算的,否則會超時的!!!
解題思路:設nn=
d∗10
k−1(
k表示n
n的位數
,d表示
為乙個浮
點數
)n^n=d*10^(k表示n^n的位數,d表示為乙個浮點數)
nn=d∗1
0k−1
(k表示
nn的位
數,d表
示為乙個
浮點數)
所以d =1
0(lo
g10(n
n)−(
k−1)
)d=10^(n^n)-(k-1))}
d=10(l
og10
(nn
)−(k
−1))
而k =⌊
log10
(nn)
+1
⌋k= \lfloor log_(n^n)+1 \rfloor
k=⌊log
10(
nn)+
1⌋帶入上式d=1
0log
10(nn
)−⌊l
og10(
nn)⌋
d=10^(n^n)- \lfloor log_(n^n) \rfloor }
d=10lo
g10
(nn)
−⌊lo
g10
(nn)
⌋在化解一下d=1
0n∗l
og10n
−⌊n∗
log10
n⌋
d=10^n- \lfloor n*log_n \rfloor }
d=10n∗
log1
0n−
⌊n∗l
og10
n⌋所以最後d取整就是答案了,呼~,難,數學難!!
#include
#include
using
namespace std;
intmain()
return0;
}
題目位址
三個陣營,公主的人a、皇后的人b、還有看熱鬧的人c,公主的人包括公主,他們只會說真話,皇后的人只會說假話,看熱鬧的人就想說什麼就說什麼,所以要100%找到公主,那麼看熱鬧的人就指定不上了,所以如果公主的人大於皇后的人和看熱鬧的人,那麼公主就一定能找到,而如果公主的人只有乙個,那麼就一定是公主所以就不用問就可以知道,否則根據鴿籠原理,就得問2∗(
b+c)
+1
2*(b+c)+1
2∗(b+c
)+1次
#include
using
namespace std;
intmain()
else
printf
("no\n");
return0;
}
題目位址
這是一道非常基礎的博弈,只要看了相關的資料這題應該是沒有問題的,只是有時候的確是這樣的,看這對,方法也是這樣的,但是就是wa,這樣的情況也不是沒有,我也時時為這種情況頭疼,當然沒辦法,這種情況我們要麼看看別人的,要麼換思路。。
這道題很簡單,就不多說,主要說一下結論,就是n%(m+1)這個m和1分別是可以摸到的最大值和最小值。
對於任意的p,q(p,q分別是可以摸的最大值和最小值)這個結論都是對的。即n%(p+q),這是乙個迴圈,大家應該是會懂得。』
這裡我要強推這篇blog 常見的幾種博弈
#include
using
namespace std;
intmain()
return0;
}
12 7 比賽題解
這個題的意思就是對於給定的數x,找到兩個數a,b滿足以下條件 可以看出a,b是不唯一的,所以這道題是spj,那我們只要找到最好找的就好了。a b 最大的時候,就是a b x對吧,正好這時候也滿足題目中的其它要求。如果x x 都不滿足大於 x 這個條件的話,肯定就無解了,所以我們只需要判斷這個條件就好...
題解 騎車比賽
描述 小信準備去參加騎車比賽,比賽在 n 個城市間進行,編號從 1 到 n。選手們都從城市 1 出發,終點在城市 n。已知城市間有 m 條道路,每條道路連線兩個城市,注意道路是雙向的。現在小信知道了他經過每條道路需要花費的時間,他想請你幫他計算一下,他這次比賽最少需要花多少時間完成。輸入第一行輸入兩...
比賽題解 NOIP2021 題解
可以先把十進位制表示下數字含有 7 的所有數都求出來,然後去列舉這些數的倍數,將其標記。如果當前列舉到的數被標記過了則就不需要再列舉倍數了 因為列舉的倍數肯定也被標記過了 時間複雜度 mathcal n log log n include include include using namespac...