洛谷P3414 SAC#1 - 组合数
2024-08-31 16:45:50
P3414 SAC#1 - 组合数
- 218通过
- 681提交
- 题目提供者ProjectWTA
- 标签
- 难度普及/提高-
- 时空限制1s / 128MB
提交 讨论 题解
最新讨论更多讨论
- 讨论区出bug了
- 题目错啦
- 其实是很简单的题
题目背景
本题由世界上最蒟蒻最辣鸡最撒比的SOL提供。
寂月城网站是完美信息教室的官网。地址:http://191.101.11.174/mgzd 。
题目描述
辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌!
今天他萌上了组合数。现在他很想知道simga(C(n,i))是多少;其中C是组合数(即C(n,i)表示n个物品无顺序选取i个的方案数),i取从0到n所有偶数。
由于答案可能很大,请输出答案对6662333的余数。
输入输出格式
输入格式:
输入仅包含一个整数n。
输出格式:
输出一个整数,即为答案。
输入输出样例
输入样例#1:
3
输出样例#1:
4
说明
对于20%的数据,n <= 20;
对于50%的数据,n <= 1000;
对于100%的数据,n <= 1 000 000 000 000 000 000 (10^18)
分析:先上结论:答案为2^(n-1),为什么是这个呢?如果i能取奇数,那么答案为2^n,因为我们从n个数中取0个,取1个,取2个...取n个,相当于取任意多个,每个位置可以取或者不去,那么根据乘法原理,答案就为2^n,如果i只能为偶数,就会有一半的位置取不了,答案就为原答案的1/2.
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; long long n; const int mod = ;
typedef long long LL; LL fun(LL x, LL n)
{
LL res = ;
while (n > )
{
if (n & )
res = (res*x) % mod;
x = (x*x) % mod;
n >>= ;
}
return res % mod;
} int main()
{
scanf("%lld", &n);
printf("%lld\n",fun(, n - )); return ;
}
最新文章
- Hadoop和Spark的异同
- Linux 读书笔记 一
- WTF,这到底是在做什么?
- ###g++编译器
- jQuery慢慢啃之回调(十三)
- BZOI 1507 [NOI2003] Editor
- SVN强制填写日志
- 开源一个监控数据采集Agent:OpenFalcon-SuitAgent
- unix more命令
- 6.Hibernate单向的多对一 关联映射
- Java Timer及TimerTarsk(摘自网络)
- 使用getCurrentPosition方法实时获取当前Geolocation信息(赋源码文件)--html5、JavaScript
- linkin大话数据结构--Google commons工具类
- javaApplication中如何使用log4j
- Android 9.0适配遇到的问题1
- Delphi Record To Stream
- RPA简介
- hive条件函数
- 《JavaScript 高级程序设计》第四章:变量、作用域和内存问题
- opencv之模糊处理
热门文章
- Echarts简单图表
- [转载]linux+nginx+python+mysql安装文档
- rhel6 mysql skip-grant-tables 添加用户报错 ERROR 1290
- 无法设置主体sa的凭据
- scrum立会报告+燃尽图(第三周第五次)
- RIGHT-BICEP测试第二次
- 01慕课网《vue.js2.5入门》——基础知识
- C++:const用法的简单总结
- TFTP服务 简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,默认端口号为69
- Hibernate(六)