NOIP2011 提高組合集

2022-05-01 20:33:10 字數 1574 閱讀 2675

noip 2011 提高組合集

d1 t1 鋪地毯

模擬,題目讓你幹啥你就幹啥

#include #include using namespace std;

int x[100010],y[100010],dx[100010],dy[100010];

int main()

printf("%d\n",r);

return 0;}

d1 t2 選擇客棧

做的時候好像麻煩了。我的做法是對於乙個可以當接頭地點的店,考慮它的貢獻。為了避免算重,我們令它是左端點往右走的第乙個滿足條件的店。說是第乙個滿足條件,但是不一定非要在這裡吃。

然後根據這個節點的往右走第乙個不滿足的,乘以右邊的所有點,更新答案。

#include #include #include #include #define n 200010 

#define m 60

using namespace std;

typedef long long ll;

int a[n],b[n],f[n][m];

int main()

return ans;

}ll before[1010];

int main()

ll a,b,k,n,m;

cin >> a >> b >> k >> n >> m ;

// a%=mod,b%=mod;

printf("%lld\n",quick_power(a,n)%mod*quick_power(b,m)%mod*before[k]%mod

*(quick_power(before[n],mod-2)%mod*quick_power(before[k-n],mod-2)%mod)%mod);

}

d2 t2 聰明的質檢員

考慮二分,然後直接暴力列舉驗證即可,時間複雜度為o(logn(n+m))。

#include #include #include #include #define n 200010 	

using namespace std; typedef long long ll; int n,m; ll s;

int f[n]; ll g[n]; ll l[n],r[n],w[n],v[n];

inline char nc()

ll rd()

ll check(int x)

ll ans=0;

for(int i=1;i<=m;i++) ans+=1ll*(g[r[i]]-g[l[i]-1])*(f[r[i]]-f[l[i]-1]);

return ans;

}int main()

a[n];

int n,m,k,ans;

int f[n],time[n],g[n],dist[n],sum[n];

int main()

cout << ans << endl ;

return 0;

}

noip2011提高組 計算係數

這個題第一眼 楊輝三角。其實還有個高大上的名字 叫。二項式定理 我才高一qaq 後面這個名字不知道啊 不過知道楊輝三角也夠了 1 1a 0 b 0 1 1 1a 1b 1 2 1 1a 2 2ab 1b 2 1 3 3 1 只不過這道題多了乙個x與y項的係數 無所謂 用整體思想 將ax看成u by看...

noip 2011 提高組 計算係數

給定乙個多項式 ax by k,請求出多項式展開後 x n y m 項的係數。保證n m k 共一行,包含 5 個整數,分別為a,b,k,n,m,每兩個整數之間用乙個空格隔開。輸出共 1 行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對10007 取模後的結果。輸入 1 1 3 1 2 輸...

NOIP2011提高組 Mayan遊戲

mayan puzzle是最近流行起來的乙個遊戲。遊戲介面是乙個 7 行5 列的棋盤,上面堆放著一些方塊,方塊不能懸空堆放,即方塊必須放在最下面一行,或者放在其他方塊之上。遊戲通關是指在規定的步數內消除所有的方塊,消除方塊的規則如下 1 每步移動可以且僅可以沿橫向 即向左或向右 拖動某一方塊一格 當...