題幹去內網找。。。
計算方法是可以通過找規律的方法找出來的,但是正規的式子是
f(i, k) = ∑(x=1,x<=mid(k,p))c(ax+1,k-x+1)-c(ax,k-x+1)
其中:p表示i在二進位制下1的個數,ax表示二進位制下第x高的1所在為代表的2的冪次。
可以證明出f(i.k)<=f(i+1,k).因此滿足的答案連成一串。
特判k==1:此時有無限多。
其他只要二分出邊界即可。
#pragma gcc optimize("o3")
#include
#include
#include
#include
#include
#include
#define inf 1e18
#define ll unsigned long long
using
namespace
std;
int t,k;ll m,c[70][70];
void init()
ll check(ll x)
return s;
}int main()
if(k==64)
ll l=1,r=9223372036854775807ll,mid,ans1,ans2;
while(l<=r)
ans1=r+1;
printf("%lld ",ans1);
l=1,r=9223372036854775807ll;
while(l<=r)
ans2=l-1;
printf("%lld\n",ans2);
}}
拆素數 找規律,數學
牛牛現在有乙個包含 n 個正整數的陣列 a 牛牛可以將其中的每個數 a i 都拆成若干個和為 a i 的正整數,牛牛想知道拆後 也可以乙個數都不拆 這個陣列最多能有多少個素數。對於1,它本來就不是素數,最多能拆成0個素數的和 對於2和3,最多能拆成1個素數的和 4 2 2,最多能拆成2個素數的和 5...
數學 找規律HDU 1030
題目難點在於找到規律 根據公式求解 從三個角度看這個圖,level,left,right,如下圖,題目的答案就是3個圖上2個點之間的層數的高度差之和。例如 6 12 level 1,left 1,right 1,答案就是3。例如 3 12 level 2,left 1,right 2,答案就是5。i...
找規律 koishi的數學題
給你乙個公式,讓你求結果 詳細看題目鏈結裡面 如果出這種題,我就死定了 真的 看了一下,不會 那就打表。打了半天表沒發現什麼,因為 n 也在變,每次答案都不一樣,然後我換了個思路,對於每一位上的數針對 n 不同又是怎麼變得呢?於是我對於每一位又打了個表 x代表沒有數 1 0 1 2 3 4 5 6 ...