題目均**於dotcpp
bin巨出的題就是難啊啊啊
小明發現49很有趣,首先,它是個平方數。它可以拆分為4和9,拆分出來的部分也是平方數。169也有這個性質,我們權且稱它們為:拼接平方數。
100可拆分1 00,這有點勉強,我們規定,0 00 000 等都不算平方數。
小明想:還有哪些數字是這樣的呢?
你的任務出現了:找到某個區間的所有拼接平方數。
輸入兩個正整數 a b (a思路:有以下幾點需要注意:
1、首先這個數要滿足是平方數。
2、某個數就拆分成兩個數就行了!!!不會出現拆分成三個數以上的情況
3、所以挨個列舉遍歷即可。
注意 9025這樣的數也算(9 025就是25)
下面是ac**
const
int maxn=
1e6+10;
int a,b;
bool con[maxn]
;bool
judge
(int i)}}
intmain()
return0;
}
w星球的乙個種植園,被分成 m * n 個小格仔(東西方向m行,南北方向n列)。每個格仔裡種了一株合根植物。
這種植物有個特點,它的根可能會沿著南北或東西方向伸展,從而與另乙個格仔的植物合成為一體。
如果我們告訴你哪些小格仔間出現了連根現象,你能說出這個園中一共有多少株合根植物嗎?
輸入第一行,兩個整數m,n,用空格分開,表示格仔的行數、列數(1思路:並查集,不需要搜尋。並查集就行了。
下面是ac** 注意陣列要開到1e6!!!!
const
int maxn=
1000010
;int n,m,k,cnt;
int pre[maxn]
;bool con[maxn]
;set<
int> st;
inline
intid
(int i,
int j)
intfind
(int x)
void
join
(int a,
int b)
void
init()
st.clear()
;}intmain()
rep(i,
1,n)
}int cnt=0;
rep(i,
1,m*n)
printf
("%d\n"
,cnt)
;return0;
}
題目描述
給定乙個長度為 n 的陣列 a = [a1, a2, · · · an ],陣列中有可能有重複出現 的整數。
現在小明要按以下方法將其修改為沒有重複整數的陣列。小明會依次修改 a2,a3,··· ,an。
當修改 ai 時,小明會檢查 ai 是否在 a1 ∼ ai−1 **現過。如果出現過,則 小明會給 ai 加上 1 ;如果新的 ai 仍在之前出現過,小明會持續給 ai 加 1 ,直 到 ai 沒有在 a1 ∼ ai−1 **現過。
當 an 也經過上述修改之後,顯然 a 陣列中就沒有重複的整數了。 現在給定初始的 a 陣列,請你計算出最終的 a 陣列
輸入第一行包含乙個整數 n。 第二行包含n個整數a1,a2,··· ,an
輸出輸出n個整數,依次是最終的a1,a2,··· ,an。
樣例輸入
52 1 1 3 4
樣例輸出
2 1 3 4 5
思路:直接模擬會t 親測。
要用並查集!!!竟然要用並查集!!!
下面是關鍵**。
rep
(i,1
,1000000
) pre[i]
=i;rep
(i,1
,n)
解釋:先把所有的pre i 置 i
然後對於每乙個a[i] 都看看當前的祖先是誰,然後自己就是當前的祖先
然後因為這個已經用過了 就讓當前這個置tp+1為祖先。
挺巧妙的!!!
自己沒想到真的沒想到!!!
下面是ac**
using
namespace std;
const
int maxn=
1e5+10;
int n;
int a[maxn]
;int pre[maxn*10]
;int
find
(int x)
intmain()
rep(i,
1,n)
return0;
}
當敵方的小兵進入到我方防禦塔的範圍內,就會持續受到防禦塔造成的傷害;當然我方英雄也可以對它造成傷害。當小兵的血量降到了 0 或者更低,就會被擊殺。為了獲得經驗,uim 希望在防禦塔將這個小兵殺死之前,親自補刀將其擊殺。
為了簡化問題,我們假設這個小兵有 h 點的生命值。每次防禦塔的攻擊可以給小兵造成 x 點傷害,而你的英雄每次攻擊可以給小兵造成 y 點傷害。你的攻擊速度和防禦塔攻擊速度相同,所以你可以在防禦塔第一次攻擊小兵之前,或者每次防禦塔攻擊之後,選擇是否對小兵進行一次攻擊,當然你也可以選擇不攻擊。
現在想知道,給出這些資訊,判斷英雄是否有辦法將這個小兵擊殺?
輸入每個測試點由多組資料組成。
輸入第一行,包含乙個正整數 t,表示資料組數。
接下來 t 行,每行三個非負整數 h,x,y,其意義已經在題目描述中給出。
輸出輸出 t 行。對於每組資料,如果可以最後將小兵擊殺,輸出 yes 否則輸出 no
樣例輸入
5100 100 1
100 97 1
100 98 1
100 99 1
100 100 0
樣例輸出
nono
yesyes
no思路:
1、先考慮x=0或者y=0或者y>=h的情況 特判
2、否則計算出塔要打m次(還不能讓塔打完 如果整除了要剩一點)
3、然後判斷 人再打m+1次能不能打完h (直接判斷最大的 自己看的題解從1開始加 莫名其妙的真的是
下面是ac**:
using
namespace std;
intmain()
else
if(x==
0||y>=h)
bool flag=
false
; ll num=h/x;
if(h%x==
0) num--;if
(num*x+
(num+1)
*y>=h) flag=
true;if
(flag)
printf
("yes\n");
else
printf
("no\n");
}return0;
}
北郵計院13上機真題
accept 207 submit 852 time limit 1000ms memory limit 65536kb description 請你計算出第x年y月z日是第x年的第幾天。其中,1月1日是第一天,1月2日是第二天,以此類推。計算時請注意閏年的影響。對於非整百年,年數能整除4是閏年,否...
藍橋杯真題訓練 2019 2題
2019第二題 小明用字母 a 對應數字 1,b 對應 2,以此類推,用 z 對應 26。對於 27 以上的數字,小明用兩位或更長位的字串來對應,例如 aa 對應 27,ab 對 應 28,az 對應 52,lq 對應 329。請問 2019 對應的字串是什麼?答案提交 這是一道結果填空的題,你只需...
藍橋杯java訓練題(2)
1.乙個n位的十進位制正整數,如果它的每個位上的數字的n次方的和等於這個數本身,則稱其為花朵數。例如 當n 3時,153就滿足條件,因為1 3 5 3 3 3 153,這樣的數字也被稱為水仙花數 其中,表示乘方,5 3表示5的3次方,也就是立方 當n 4時,1634滿足條件,因為1 4 6 4 3 ...