t1:swapity swap
t2:********s
t3:clock tree
farmer john 的 n 頭奶牛(1≤n≤10^5)站成一排。對於每乙個 1≤i≤n,從左往右數第 i 頭奶牛的編號為 i。farmer john 想到了乙個新的奶牛晨練方案。他給奶牛們 m 對整數 (l1,r1)…(lm,rm),其中 1≤m≤100。他讓她們重複以下包含 m 個步驟的過程 k(1≤k≤10^9)次:
對於從 1 到 m 的每乙個步驟i:當前從左往右數在位置 li…ri 的奶牛序列反轉她們的順序。
當奶牛們重複這一過程 k 次後,請對每乙個 1≤i≤n 輸出從左往右數第 i 頭奶牛的編號。
輸入的第一行包含 n, m 和 k。對於每乙個 1≤i≤m,第 i+1 行包含 li 和 ri,均為範圍在 1…n 內的整數,其中 li在第 i 行輸出指令序列執行了 k 次後奶牛序列中從左往右數第 i 個元素的編號。
722
2537
124
3576
我們用f[i][j]記錄第 j 個元素,經過2^i次翻轉後,這個元素的值。
然後寫倍增,拆分k,最後輸出。
#
include
#include
#include
#include
using
namespace std;
typedef
long
long ll;
int n,m,k,a[
111]
,b[111
],c[
100010
],f[35]
[100010];
intmain()
cout/輸出
}return0;
}
farmer john 想要給他的奶牛們建造乙個三角形牧場。有 n(3≤n≤10^5)個柵欄柱子分別位於農場的二維平面上不同的點 (x1,y1)…(xn,yn)。他可以選擇其中三個點組成三角形牧場,只要三角形有一條邊與 x 軸平行,且有另一條邊與 y 軸平行。
fj 可以組成的所有可能的牧場的面積之和等於多少?
第一行包含 n。
以下 n 行每行包含兩個整數 xi 和 yi,均在範圍 −104…104 之內,描述乙個柵欄柱子的位置。
由於面積之和不一定為整數且可能非常大,輸出面積之和的兩倍模 10^9+7 的餘數。
400
0110
12
3
這道題有此公式:
ac+ad+bc+bd=(a+b)*(c+d)
根據這個可以:
按照x座標從小到大,y座標從小到大的順序,依次去列舉每個點i,
記錄每個橫縱座標各自積累的和是多少。當又來了乙個新點,則把這個點對應的橫座標位置的和,加上4倍與上乙個點之間的距離。
#
include
#include
#include
using
namespace std;
long
long n,m,sum;
struct
node
a[100010];
bool
cmp1
(node a,node b)
bool
cmp2
(node a,node b)
bool
c***
(node a,node b)
bool
cmp4
(node a,node b)
void
work()
,yy[
20010]=
;long
long x1[
20010]=
,y1[
20010]=
;long
long x2[
20010]=
,y2[
20010]=
;for
(int i=
1;i<=n;i++)}
intmain()
sort
(a+1
,a+1
+n,cmp1)
;//排序一次做一次
work()
;sort
(a+1
,a+1
+n,cmp2)
;work()
;sort
(a+1
,a+1
+n,c***)
;work()
;sort
(a+1
,a+1
+n,cmp4)
;work()
; cout
}
farmer john 的新牛棚的設計十分奇怪:它由編號為 1…n 的 n 間房間(2≤n≤2500),以及 n−1 條走廊組成。每條走廊連線兩間房間,使得每間房間都可以沿著一些走廊到達任意其他房間。
牛棚裡的每間房間都裝有乙個在表盤上印有標準的整數 1…12 的圓形時鐘。然而,這些時鐘只有一根指標,並且總是直接指向表盤上的某個數字(它從不指向兩個數字之間)。
奶牛 bessie 想要同步牛棚中的所有時鐘,使它們都指向整數 12。然而,她頭腦稍有些簡單,當她在牛棚裡行走的時候,每次她進入一間房間,她將房間裡的時鐘的指標向後撥動乙個位置。例如,如果原來時鐘指向 5,現在它會指向 6,如果原來時鐘指向 12,現在它會指向 1。如果 bessie 進入同一間房間多次,她每次進入都會撥動這間房間的時鐘。
請求出 bessie 可能的出發房間數量,使得她可以在牛棚中走動並使所有時鐘指向 12。注意 bessie 並不撥動她出發房間的時鐘,但任意時刻她再次進入的時候會撥動它。時鐘不會自己走動;時鐘只會在 bessie 進入時被撥動。此外,bessie 一旦進入了一條走廊,她必須到達走廊的另一端(不允許走到一半折回原來的房間)。
輸入的第一行包含 n。下一行包含 n 個整數,均在範圍 1…12 之內,表示每間房間初始時的時鐘設定。以下 n−1 行每行用兩個整數 a 和 b 描述了一條走廊,兩數均在範圍 1…n 之內,為該走廊連線的兩間房間的編號。
輸出出發房間的數量,使得 bessie 有可能使所有時鐘指向 12。
4
1110
111112
2324
1
求起點有多少個,那麼我們依次列舉每個點作為起點,把它當做樹根,從它出發往孩子走,看看能不能做到。
這樣列舉每個點做根,每次根確定以後,一遍dfs。
#
include
#include
#include
#include
using
namespace std;
int n,c[
2501
],t[
2501
],ans;
vector<
int> a[
2501];
//存圖
void
dfs(
int u,
int f)
}int
main()
for(
int i=
0;i1;i++
)for
(int i=
1;i<=n;i++
) cout
}
2020 3 11 C組模擬賽題解
t1 水果盛宴 t2 憤怒的奶牛2 t3 採訪 t4 房間開燈貝茜又再一次地闖入了 farmer john 的房子!她在廚房發現了一堆檸檬和一堆橘子 每堆都有無限多個 並且,她希望盡可能地多吃。貝茜的有乙個飽腹值上限 t 1 t 5,000,000 吃乙個橘子會增加她 a 點飽腹值,吃乙個檸檬會增加...
2020 3 14 C組模擬賽題解
t1 探索的奶牛 t2 單詞 t3 牛車 t4 危險係數fj的奶牛喜歡探索農場周圍的地形。一開始,所有n 1 n 1,000,000,000 只奶牛一起出發,但當碰到路口時,這一群牛可能會分成兩部分 不能為空 每一部分都繼續前進,當碰到另乙個路口時,再分成兩部分,如此反覆下去。假設路上到處都是新的岔...
2020 3 28 C組模擬賽題解
t1 羊羊整除 t2 羊羊吃草 t3 羊羊修路 t4 羊羊列隊羊年到了,村長開始教小羊學習pascal語言,剛開始學習四則運算。村長在白板上寫下兩個整數16和3,問小羊們,有16隻羊,平均分到3個羊村,每個羊村分到的數量必須相同,這個分配的數量最大是多少?小羊們很快就得到了答案,每個羊村分到5只,有...