函数 [计数]

15 篇文章 0 订阅
13 篇文章 0 订阅

感谢 JR 赞助

在这里插入图片描述


S O L U T I O N \mathbb{SOLUTION} SOLUTION

F ( x ) = y F(x) = y F(x)=y, 沿着 F [ F ( x ) ] = − x F[F(x)] =-x F[F(x)]=x 这个规则推

F ( x ) = y                               X F(x)=y \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mathcal{X} F(x)=y                             X
          ↓ \ \ \ \ \ \ \ \ \ ↓          
F ( y ) = F [ F ( x ) ] = − x F(y) = F[F(x)] = -x F(y)=F[F(x)]=x
                    ↓ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ↓                    
F ( − x ) = F [ F ( y ) ] = − y F(-x)=F[F(y)] = -y F(x)=F[F(y)]=y
                    ↓ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ↓                    
F ( − y ) = F [ F ( − x ) ] = x F(-y) = F[F(-x)] = x F(y)=F[F(x)]=x
                    ↓ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ↓                    
F ( x ) = F [ F ( − y ) ] = y          Y F(x)=F[F(-y)]=y \ \ \ \ \ \ \ \ \mathcal{Y} F(x)=F[F(y)]=y        Y

会发现 X \mathcal{X} X式 又等价于 Y \mathcal{Y} Y式,
得出结论: 对两个正整数 x , y x,y x,y, F ( x ) = ±   y F(x)=±\ y F(x)=± y, 只会影响到 F ( x ) , F ( y ) , F ( − x ) , F ( − y ) F(x), F(y), F(-x), F(-y) F(x),F(y),F(x),F(y)四个函数的值.

不考虑负数的存在, 原问题转换为
1 , 2 , 3 , . . , R 1, 2, 3, .., R 1,2,3,..,R 序列中两两配对的方案数,
F ( x ) = ±   y F(x) = ± \ y F(x)=± y 是两种不同的方案, 即一次配对有两种不同的选择,
∴ A n s = 2 R / 2 ∗ ( N − 1 ) ∗ ( N − 3 ) . . . ∗ 1 ∴ Ans = 2^{R/2}*(N-1)*(N-3)...*1 Ans=2R/2(N1)(N3)...1


C O D E \mathbb{CODE} CODE

#include<bits/stdc++.h>
#define reg register

const int maxn = 10000007;

int L;
int R;
int Ans;

const int mod = 666623333;

int KSM(int a, int b){
        int s = 1;
        while(b){
                if(b & 1) s = 1ll*s*a % mod;
                a = 1ll*a*a % mod;
                b >>= 1;
        }
        return s;
}

int main(){
        scanf("%d%d", &L, &R); 
        if(L != -R) printf("0\n"); 
        else if((L&1) || (R&1)) printf("0\n"); 
        else{ 
                Ans = KSM(2, R/2); 
                for(reg int i = 3; i <= R; i += 2){ 
                        Ans = 1ll*Ans*i % mod; 
                } 
                printf("%d\n", Ans);
        }
        return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值