2019牛客國慶集訓派對day1

2022-07-27 17:54:09 字數 2589 閱讀 6317

// 雖然我國慶七天溜回家了,隊友還是督促我好好打比賽...

// 畢竟現場賽也沒幾天了,好好練習哈

判斷矩陣是否存在子矩陣滿足 \(x_1 \le x \le x_2, y_1 \le y \le y_2\) 內全是1,其他地方為0。

水題,暴力判斷一下即可。

#include#includeusing namespace std;

char mat[15][15];

int n, m;

int x1, y1, x2, y2;

void check() else }}

for(int i=0;i=0&&x2==-1;i--) }}

if(x1==-1||x2==-1)

check();

}return 0;

}

給定n 與 k, 求 \(min(c_n^k, 10^)\) 。

\(0 ≤ k ≤ n≤10^9\) , 至多 \(10^5\) 組資料。

組合數 \(c_^\) 已經遠超 \(10^\),那麼顯然可以考慮使用 o(n) 的遞推式求組合數,即便 \(10^5\) 組資料也跑的過去。

再次複習一遍組合數遞推式

\[c_n^k = \frac c_n^

\]折騰半天才a,注意到 \(c_n^ = c_n^k\) , 先 k = min(k, n-k),保證計算過程是單調的。

doublea不過去,又要用到無敵的__int128。賽後發現可以用long double保證精度。

#includeusing namespace std;

typedef long long ll;

//typedef __int128 i128;

const ll inf = 1e18;

ll cal(ll n, ll k)

return (ll)res;

}int main()

return 0;

}

優雅簡潔的python寫法:

while true:

try:

n, k = map(int, input().split())

k = min(k, n-k)

ans = 1

for i in range(1, k+1):

ans = ans * (n-i+1) // i

if ans>10**18 :

ans = 10**18

break

print(ans)

except eoferror:

break

有 n 個範圍在 [0, 99] 之間的整數,現在他們相連寫成了一列數,問原來的陣列有多少種可能。

原以為是 dp,寫了一半不對勁,改寫 dfs ,沒搜出樣例,溜了。。。

// 原來是dfs時pos==len才++ans。

#include#include#includeusing namespace std;

char s[55];

bool vis[100];

int len;

int ans;

void dfs(int pos)

int n = s[pos]-'0';

int nn = n*10;

if(!vis[n])

if(nn && pos=10 && !vis[nn]) }

int main()

return 0;

}

bobo一開始位於平面上的原點 (0,0),有四種操作:向右最多移動a步,向上最多移動b步,向左最多移動c步,向下最多移動d步。問執行 n 次操作可以到達多少個不同的點。

只進行一步的操作很簡單,分別可以到達座標軸上離原點最遠的 (a, 0), (0, b), (-c, 0), (0, -d)。故包含原點在內共有 1 + a + b + c + d 個點。

多步的話,我們先只看第一象限內的情況:

第一次操作到達x軸上區間 [1, a],第2次到第n次豎直方向上能到達 [1, (n-1)b)] ,共 a*(n-1)b個點;

兩次操作到達x軸上區間 [a+1, 2a], 第2次到第n次豎直方向上能到達 [1, (n-2)b)] ,共 a*(n-2)b個點;

n-1次操作到達x軸上區間 [(n-2)a+1, (n-1)a], 第n-1次到第n次豎直方向上能到達 [1, b] ,共 a*b個//點;

// n 次操作到達x軸上最遠的a個點 [(n-1)a+1, na]。

所以答案很簡單, 1 + n(a + b + c + d) + n(n-1)/2 * (ab + bc + cd + ad) 。

#includeusing namespace std;

const int mod = 1e9+7;

typedef long long ll;

ll n, a, b, c, d;

int main()

return 0;

}

數學題,待補,我的鍋。

2019牛客國慶集訓派對day3 H

題意 動態插入一維線段端點為 li ri l i,r i li r i 查詢給定引數 li ri l i,r i li r i 問有多少條線段可以覆蓋它。我看了一眼感覺cdq可以寫我就寫了2333,複雜度是在o n log 2n l og2n o n log 2n log 2n o n lo g2 ...

2019牛客國慶集訓派對day7A題

題目理解 給你n,m,a在1到n中,b在1到m中,求a b 2016正整數對的個數 mod 1e9 7 題解 叉姐賊喜歡出這種題,不過確實這種題很好,這題是2016湖南省賽的題目,還有兩個類似的2017年四川省賽的2017和2018年湘潭邀請賽的2018 這幾個題都很像,不過考察的知識點各不相同,叉...

2019牛客國慶集訓派對day7 A 2016

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k special judge,64bit io format lld 給出正整數 n 和 m,統計滿足以下條件的正整數對 a,b 的數量 1.1 a n,1 b m 2.a b是 2016 的倍數。輸入包含不超...