請大佬們,看看我的代碼,在devc上編譯沒有出現問題,但是當我輸出資料時,程式卻沒有輸出資料,我一步一步的檢查發現,我的程式不能進入我寫的bfs()函式中,可是bfs()這個函式是沒有問題的,這是為什么呢?求助,大佬們。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+100;
struct node
{
int x[N];
int len;
};
int k,n;
ll ksm(int a,int b)
{
if(!b) return 1;
ll temp=ksm(a,b/2);
if(b%2) return temp*temp*a;
return temp*temp;
}
ll get_num(int a[],int len)
{
ll sum=0;
for(int i=1;i<=len;i++)
sum+=ksm(k,a[i]);//,printf("%d ",a[i]);
//printf("\n%lld\n",sum);
return sum;
}
void bfs()
{
//printf("1\n");
priority_queue<int> res;
queue<node> q;
node t;
t.len=1,t.x[1]=0;
q.push(t);
//printf("%d \n",q.empty());
while(!q.empty())
{
node now=q.front();
q.pop();
// printf("%d \n",now.len);
ll w=get_num(now.x,now.len);
res.push(w);
if(res.size()==n)
{
printf("%lld\n",res.top());
break;
}
for(int i=now.x[now.len]+1;i<=50;i++)
{
node d;
d.len=now.len+1;
d.x[d.len]=i;
q.push(d);
}
}
return ;
}
int main()
{
scanf("%d%d",&k,&n);
// printf("%d %d \n",k,n);
bfs();
return 0;
}
uj5u.com熱心網友回復:
輸入兩個整數了嗎?uj5u.com熱心網友回復:
你的res泛型為int,但卻存入long long,編譯時也提示?uj5u.com熱心網友回復:
當把res的型別改為long long型別,還是一樣的,沒有辦法進入bfs()函式轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/8115.html
標籤:其它技術問題
上一篇:關于windows API函式GetSystemInfo獲取獲取CPU邏輯核數(執行緒數)不對的問題
下一篇:這樣做指標呼叫是否是執行緒安全的
