本文共 892 字,大约阅读时间需要 2 分钟。
/*分析: 3^0 3^1 3^0+3^1 3^2 3^0+3^2 3^1+3^2 3^0+3^1+3^2 规律当前n加进去一个,然后要再加上前面所有的个数 如果到了某个n,加前面所有的大于N个,就扫下剩下的第几个就行 时间复杂度O(n) f(n)=1+2*f(n-1) fn表示有几个数目前f(0)=1;f(1)=3;f(2)=7; 求得大于等于N时的n,然后N-f(n-1)剩下的从左边开始数 */#include#include using namespace std;const int N=1000+5;int a[N]; //好奇怪改longlong最后一个测试数据会过不去 int main(){ int n,i,len; int now,k; //k^i while(cin>>k>>n){ len=0; now=1; while(len
转载地址:http://kbmvi.baihongyu.com/