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 200010using 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 每步移動可以且僅可以沿橫向 即向左或向右 拖動某一方塊一格 當...