acwing3132. 食物(BZOJ3028)
生活随笔
收集整理的這篇文章主要介紹了
acwing3132. 食物(BZOJ3028)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
acwing3132. 食物
題意:
你當(dāng)然要幫他計(jì)算攜帶 N 件物品的方案數(shù)。
承德漢堡:偶數(shù)個(gè)。
可樂(lè):0 個(gè)或 1 個(gè)。
雞腿:0 個(gè),1 個(gè)或 2 個(gè)。
蜜桃多:奇數(shù)個(gè)。
雞塊:4 的倍數(shù)個(gè)。
包子:0 個(gè),1 個(gè),2 個(gè)或 3 個(gè)。
土豆片炒肉:不超過(guò)一個(gè)。
面包:3 的倍數(shù)個(gè)。
注意,這里我們懶得考慮明明對(duì)于帶的食物該怎么搭配著吃,也認(rèn)為每種食物都是以‘個(gè)’為單位(反正是幻想嘛),只要總數(shù)加起來(lái)是 N 就算一種方案。
因此,對(duì)于給出的 N,你需要計(jì)算出方案數(shù),并對(duì) 10007 取模。
題解:
如果不會(huì)生成函數(shù),可以先看看這個(gè)文章
生成函數(shù)(母函數(shù))
圖片中?所表示的轉(zhuǎn)化在我的博客中也有詳細(xì)解答
代碼:
這個(gè)數(shù)字N可以通過(guò)秦久韶算法邊取模邊計(jì)算
#include <bits/stdc++.h> #include <unordered_map> #define debug(a, b) printf("%s = %d\n", a, b); using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> PII; clock_t startTime, endTime; //Fe~Jozky const ll INF_ll= 1e18; const int INF_int= 0x3f3f3f3f; void read(){}; template <typename _Tp, typename... _Tps> void read(_Tp& x, _Tps&... Ar) {x= 0;char c= getchar();bool flag= 0;while (c < '0' || c > '9')flag|= (c == '-'), c= getchar();while (c >= '0' && c <= '9')x= (x << 3) + (x << 1) + (c ^ 48), c= getchar();if (flag)x= -x;read(Ar...); } template <typename T> inline void write(T x) {if (x < 0) {x= ~(x - 1);putchar('-');}if (x > 9)write(x / 10);putchar(x % 10 + '0'); } void rd_test() { #ifdef ONLINE_JUDGE #elsestartTime = clock ();freopen("data.in", "r", stdin); #endif } void Time_test() { #ifdef ONLINE_JUDGE #elseendTime= clock();printf("\nRun Time:%lfs\n", (double)(endTime - startTime) / CLOCKS_PER_SEC); #endif } string s; const int p=10007; int main() {//rd_test();string s;cin>>s;ll sum=0;for(int i=0;s[i];i++){sum=(sum*10+s[i]-'0')%p;}cout<<sum*(sum+1)*(sum+2)/6%p<<endl;//Time_test(); }總結(jié)
以上是生活随笔為你收集整理的acwing3132. 食物(BZOJ3028)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 万网买的域名怎么备案(万网买的域名怎么备
- 下一篇: cfF. Boring Queries