【dfs】年会小游戏
生活随笔
收集整理的這篇文章主要介紹了
【dfs】年会小游戏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目大意
給出n,問小于n的數中,因數最多的數
解題思路
要滿足因數最多,則小的質因數個數要大于等于打的質因數個數
那么直接按這個需求dfs枚舉每個質因數的指數
code
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define ll long long using namespace std; ll T,x,now,ans; ll b[]={1,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71}; void dfs(ll x,ll dep,ll nw,ll as,ll las) {if(as*x<ans)return;if(x<b[dep]){if(as>ans||as==ans&&nw<now)ans=as,now=nw;return;}ll g=1,gg=1;while(x>=b[dep]&&g<las){x/=b[dep];gg*=b[dep];g++;dfs(x,dep+1,nw*gg,as*g,g);}return; } int main() {scanf("%lld",&T);while(T--){now=ans=1;scanf("%lld",&x);dfs(x,1,1,1,100);printf("%lld %lld\n",now,ans);}return 0; }總結
以上是生活随笔為你收集整理的【dfs】年会小游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机用久网速慢了怎么办 这几种解决办法都
- 下一篇: 【并查集】公司搬迁