[题解]BZOJ1004 序列函数
生活随笔
收集整理的這篇文章主要介紹了
[题解]BZOJ1004 序列函数
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
原題找不到了,應(yīng)該是usaco之類(lèi)的題目吧。給一個(gè)可以交題的鏈接:http://www.cqoi.net:2012/problem.php?id=1004
思路:將素?cái)?shù)一個(gè)一個(gè)往里乘,保證掃描的順序是從小到大的就可以了。思路跟usaco training的丑數(shù)有點(diǎn)像,算是那道題的簡(jiǎn)單版吧。
?
我的實(shí)現(xiàn):
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 using namespace std; 6 #define MAXN 10020 7 #define INF 100000000000000000 8 #define llt long long 9 llt N,n,ans; 10 llt c[5],Num[5],mul[MAXN]; 11 inline void Get_llt(llt &Ret) 12 { 13 char ch; 14 bool flag=false; 15 for(;ch=getchar(),ch<'0'||ch>'9';) 16 if(ch=='-') 17 flag=true; 18 for(Ret=ch-'0';ch=getchar(),ch>='0'&&ch<='9';Ret=Ret*10+ch-'0'); 19 flag&&(Ret=-Ret); 20 } 21 int main() 22 { 23 llt i,j; 24 Get_llt(N); 25 while(N--) 26 { 27 Get_llt(c[1]);Get_llt(c[2]);Get_llt(c[3]); 28 Get_llt(n); 29 mul[0]=1; 30 memset(Num,0,sizeof(Num)); 31 for(i=0;i<n;i++) 32 { 33 ans=INF; 34 for(j=1;j<=3;j++) 35 { 36 while(c[j]*mul[Num[j]]<=mul[i]) 37 Num[j]++; 38 ans=min(ans,c[j]*mul[Num[j]]); 39 } 40 mul[i+1]=ans; 41 } 42 printf("%lld\n",mul[i]); 43 } 44 return 0; 45 } View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/CQBZOIer-zyy/p/3826234.html
總結(jié)
以上是生活随笔為你收集整理的[题解]BZOJ1004 序列函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 字符串和json之间的互相转化
- 下一篇: 100m和1000m网线的常见制作方法