BZOJ3209 花神的數論題

2022-05-12 06:38:41 字數 2258 閱讀 9133

time limit: 10 sec  memory limit: 128 mb

submit: 689  solved: 334

[submit][status]

背景眾所周知,花神多年來憑藉無邊的神力狂虐各大 oj、oi、cf、tc …… 當然也包括 ch 啦。

描述話說花神這天又來講課了。課後照例有超級難的神題啦…… 我等蒟蒻又遭殃了。

花神的題目是這樣的

設 sum(i) 表示 i 的二進位制表示中 1 的個數。給出乙個正整數 n ,花神要問你

派(sum(i)),也就是 sum(1)—sum(n) 的乘積。

乙個正整數 n。

乙個數,答案模 10000007 的值。

樣例輸入一

3樣例輸出一

2對於樣例一,1*1*2=2;

資料範圍與約定

對於 100% 的資料,n≤10^15

原創 memphis

題解:晚上做題各種不爽,明明想出了正解,一直wa,等a了在寫題解吧。。。

**:1.自己yy的,雖然慢,但ac沒問題

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include

10 #include11

#define inf 1000000000

12#define maxn 100

13#define maxm 500+100

14#define mod 10000007

15#define ll long long

16#define pa pair17

using

namespace

std;

18ll ans,n,c[maxn][maxn],tot,sum,a[maxn];

19ll power(ll x,ll y)

2024

return

t; 25

}26 ll dp(int sum,int

x)27 34

return

t;35}36

intmain()

3749

while(n)

50 ans=1;sum=0;51

for(int i=tot;i>0;i--)

52if

(a[i])

5356 ans*=sum;ans%=mod;

57 printf("

%lld\n

",ans);58}

59return0;

60 }

view code

2.網上的,自己抄都不對?

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include

10 #include11

#define inf 1000000000

12#define maxn 100

13#define maxm 500+100

14#define mod 10000007

15#define ll long long

16#define pa pair17

using

namespace

std;

18ll ans,n,c[maxn][maxn],tot,sum,a[maxn];

19ll power(ll x,ll y)

2024

return

t; 25

}26 ll calc(int

x)27

33int

main()

3447

while(n)

48 ans=1;49

for(int i=1;i<=tot;i++)ans*=power(i,calc(i)),ans%=mod;

50 printf("

%lld\n

",ans);51}

52return0;

53 }

view code

唉 真是乙個傷心的故事  想了一天半  總算搞出來了

組合數不能取模!唉,真是個不能再sb的錯誤啊。

組合數算在i的冪上怎麼能取模呢?

以後取模的時候一定要想清楚 取模會不會影響答案,究竟該不該取模。

去掉%mod 瞬間ac,囧。。。

bzoj3209 花神的數論題

題意 求sum 1 sum 2 sum n 其中sum x 表示x的二進位制表達中1的數量。答案模10 7 7。n 10 15。考慮列舉sum x 的值為t,然後求有多少個不大於n的正整數的二進位制表達恰好有t個1,設這個答案為f t 這一部分可以用數字dp來實現。例如要求解1.12,可以將其分成1...

bzoj 3209 花神的數論題

設 sum i 表示 i 的二進位制表示中 1 的個數。給出乙個正整數 n 求 i 1ns um i 枚下1的個數,那麼題目就轉換成了1 n有多少個數的二進位制有x個一。這就很容易數字dp了。f i j 表示i位第一位為1,共j個一的數的數目,g i j 表示i位第一位為0,共j個一的數的數目。容易...

BZOJ3209 花神的數論題

bzoj3209 花神的數論題 背景眾所周知,花神多年來憑藉無邊的神力狂虐各大 oj oi cf tc 當然也包括 ch 啦。描述話說花神這天又來講課了。課後照例有超級難的神題啦 我等蒟蒻又遭殃了。花神的題目是這樣的 設 sum i 表示 i 的二進位制表示中 1 的個數。給出乙個正整數 n 花神要...