暑期个人赛--第三场--D
来源:互联网 发布:西科软件 编辑:程序博客网 时间:2024/05/29 09:41
D. 田田的账号 2014新生暑假个人排位赛03
时间限制 1000 ms 内存限制 65536 KB
题目描述
田田申请了一个新的oj账号,打算取一个霸气而简单的名字。 什么叫简单呢?说白了田田脑子不好使,只能记住abcd这4个字母组成单词。 怎么叫霸气呢?田田认为a个个数一定要有奇数个,b的个数一定要有偶数个(包括0)才可以。 现在田田取了一个长为n的账号,但是由于田田的记性实在太差了,而把账号忘记了. 于是把这个问题交给了聪明的wzt,而他认为这道题太过于简单就把这道题交给了你 究竟这个账号有多少种可能?你只需得到这个结果模
输入格式
多组case,第一行为case数
输出格式
一个case对应一行输出
输入样例
212
输出样例
14
赛中提交:NULL
赛后AC:YES
题目大意:
用abcd这4个字母组成单词
a个个数一定要有奇数个,b的个数一定要有偶数个(包括0)
给出单词长度n,求其符合条件的排列组合数
反省:
以后一见到这种明显也许会有规律类型的题目一定要先打表看看规律...
解法:
暴力打表(或者甚至笔算),之后就可以发现答案就是4的n-1次方...
因此用上一个快速幂算法就可以解决了
下面是ac代码
#include "iostream"#include "string.h"#include "stdio.h"#include "stdlib.h"#include "math.h"#include "string"#include "vector"#include "list"#include "map"#include "queue"#include "stack"#include "bitset"#include "algorithm"#include "numeric"#include "functional"#define mod (1000000000+7) using namespace std;typedef long long ll; ll qpow(ll x,ll n){ if(n==0) return 1; ll res=qpow(x*x%mod,n/2); if(n&1) res=res*x%mod; return res;} int main(){ int T; scanf("%d",&T); while(T--){ ll n,x=4; scanf("%lld",&n); printf("%lld\n",qpow(x,n-1)); }}
0 0
- 暑期个人赛--第三场--D
- 暑期个人赛--第一场--D
- 暑期个人赛--第五场--D
- 暑期个人赛--第二场--D
- 暑期个人赛--第八场--D
- 暑期个人赛--第三场--B
- 暑期个人赛--第三场--A
- 暑期个人赛--第三场--C
- 暑期个人赛--第二场--D--every SG(重)
- 暑期个人赛--第四场--D(待A)
- 暑期个人赛--第三场--E(待A)
- 暑期个人赛--第三场--E(待A....)
- 2013 - ECJTU 暑期训练赛第三场-problem-D
- 暑期个人赛第一场
- 暑期个人赛第二场
- 暑期个人赛--第六场--D(包含手写邻接链表模板~!!)
- 暑期个人赛--第七场--D(复习~!含静态邻接链表)
- 暑期个人赛--第一场--E
- Redhat Enterprise Linux中如何关闭SELinux?
- AJAX实例入门
- 在Struts2中集成Spring详细讲解
- UVA 424 Integer Inquiry
- Swing透明和变换
- 暑期个人赛--第三场--D
- 登陆验证码的生成
- centos下安装mysql步骤
- 总结spring下配置dbcp,c3p0,proxool数据源链接池
- cocos2d-x 3.1.1 学习笔记[21]cocos2d-x 创建过程
- 比较有用的log4j.properties
- oracle pipelined返回值函数 针对数据汇总统计 返回结果集方法
- C#实现万年历(农历、节气、节日、星座、星宿、属相、生肖、闰年月、时辰)
- log4j日志分模块打印,同时不打印到控制台上