zoukankan      html  css  js  c++  java
  • CF 584B Kolya and Tanya

    题目大意:3n个人围着一张桌子,给每个人发钱,可以使1块、2块、3块,第i个人的金额为Ai。若存在第个人使得Ai + Ai+n + Ai+2n != 6,则该分配方案满足条件,求所有的满足条件的方案数 结果 MOD 1000000007。

    解题思路:当 n = 1 时有总共有27中情况,其中20中满足条件,则 (27^n - 7^n)为所求结果。

    代码

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    using namespace std;
    #define ll long long
    #define mod 1000000007
    
    ll pow(int a,int b){
    	ll ans=1,base;
    	base = a;
    	while(b){
    		if(b&1){
    		    ans *= base;
    			ans %= mod;
    		}
    		base *= base;
    		base %= mod;
    		b >>= 1;
    	}
    	return ans;
    }
    
    int main(){
    	int n,t;
    	ll ans1,ans2;
    	while(scanf("%d",&n) == 1){
    		if(n == 1){
    			printf("20
    ");
    			continue;
    		}
    		ans1 = pow(27,n);
    		ans2 = pow(7,n);
    		printf("%I64d
    ",(ans1-ans2+mod)%mod);
    	}
    	return 0;
    }
    
  • 相关阅读:
    OD 实验(十三)
    第一个 Windows 界面程序
    C 语言
    C 语言
    OD 实验(十二)
    PowerShell 常用命令
    OD 实验(十一)
    OD 实验(十)
    redis
    memcached缓存系统
  • 原文地址:https://www.cnblogs.com/jxgapyw/p/4858693.html
Copyright © 2011-2022 走看看