【URAL】1091 Tmutarakan Exams
题意:取k个不同的数,每个数不超过s,问种数。
若kx1,kx2,...,kx3满足条件,则x1,x2,...,x3必然满足条件。
因此枚举素数容斥,2*3*5*7>50,所以枚举之多三层。
1 #include<cstdio> 2 #include<cstring> 3 #include<vector> 4 #define MAXN 60 5 typedef long long LL; 6 using namespace std; 7 bool p[MAXN]; 8 vector<int> prime; 9 LL C[MAXN][MAXN]; 10 void Init() { 11 int i, j; 12 memset(p, true, sizeof(p)); 13 for (i = 2; i < 10; i++) { 14 if (p[i]) { 15 for (j = i * i; j < MAXN; j += i) 16 p[j] = false; 17 } 18 } 19 prime.clear(); 20 for (i = 2; i < MAXN; i++) { 21 if (p[i]) 22 prime.push_back(i); 23 } 24 memset(C, 0, sizeof(C)); 25 for (i = 0; i < MAXN; i++) 26 C[i][0] = C[i][i] = 1; 27 for (i = 1; i < MAXN; i++) { 28 for (j = 1; j < i; j++) 29 C[i][j] = C[i - 1][j] + C[i - 1][j - 1]; 30 } 31 } 32 int main() { 33 LL ans; 34 int t, s, i, j, k; 35 Init(); 36 while (~scanf("%d%d", &t, &s)) { 37 for (ans = i = 0; i < (int) prime.size(); i++) 38 ans += C[s / prime[i]][t]; 39 for (i = 0; i < (int) prime.size(); i++) { 40 for (j = i + 1; j < (int) prime.size(); j++) 41 ans -= C[s / prime[i] / prime[j]][t]; 42 } 43 for (i = 0; i < (int) prime.size(); i++) { 44 for (j = i + 1; j < (int) prime.size(); j++) { 45 for (k = j + 1; k < (int) prime.size(); k++) 46 ans += C[s / prime[i] / prime[j] 47 / prime[k]][t]; 48 } 49 } 50 if (ans > 10000) 51 ans = 10000; 52 printf("%lld\n", ans); 53 } 54 return 0; 55 }
转载于:https://www.cnblogs.com/DrunBee/archive/2012/09/06/2673539.html
【URAL】1091 Tmutarakan Exams相关推荐
- URAL 1091. Tmutarakan Exams
http://acm.timus.ru/problem.aspx?space=1&num=1091 题意:给你两个数K,S,让你从1~S中挑选K个数使得他们的最大公约数大于1,问你有多少种方法 ...
- 计算机绘图1091大作业,2018秋季【西南大学】[1091]《计算机绘图(1)》作业(参考答案)...
试卷总分:100 得分:100 第1题,[单项选择题]AutoCAD绘制圆弧的默认方式 . A.逆时针 B.顺时针 C.指定 D.不确定 正确答案: 第2题,[单项选择题]在系统提示&q ...
- 【PAT】1091 Acute Stroke (30 分)
三维搜索,按照6个邻接理论,总会有重合的部分区域, 因此根据搜索顺序,先访问到的就是一个区域的[不能较真] #include <bits/stdc++.h> using namespace ...
- 【ZZULIOJ】1091: 童年生活二三事(多实例测试)
ZZULIOJ题解 1091: 童年生活二三事(多实例测试) 题目描述 Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去. 但年幼的他一次只能走上一阶或者一下子蹦上两阶. 现在一共 ...
- 【PTA-A】1091 Acute Stroke (30 分)(BFS、队列)
One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. Given the re ...
- F - Tmutarakan Exams URAL - 1091 -莫比乌斯函数-容斥 or DP计数
F - Tmutarakan Exams 题意 : 从 < = S 的 数 中 选 出 K 个 不 同 的 数 并 且 gcd > 1 .求方案数. 思路 :记 录 一 下 每 个 数 ...
- 【BZOJ1814】Ural 1519 Formula 1 插头DP
[BZOJ1814]Ural 1519 Formula 1 题意:一个 m * n 的棋盘,有的格子存在障碍,求经过所有非障碍格子的哈密顿回路个数.(n,m<=12) 题解:插头DP板子题,刷板 ...
- 4. linux调用文件计算阶乘前5项和_【题解循环】1091:求阶乘的和
1091:求阶乘的和时间限制: 1000 ms 内存限制: 65536 KB [题目描述] 给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+...+n!),输出阶乘的和. [输 ...
- 【URAL 1136 --- Parliament】二叉树的遍历
[URAL 1136 --- Parliament]二叉树的遍历 Description A new parliament is elected in the state of MMMM. Each ...
最新文章
- 顺序Guass消去法求解线性方程组的代码实现
- Ubuntu 上安装rust
- linux作业控制三个,10个linux 作业控制的bash 脚本实例
- 不使用配置文件动态注册HttpModule
- 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第9章-不确定分数阶系统的包含控制
- c 多语言切换dll,【图片】老C教学之——给你的程序添加多语言支持【dll】【vb吧】_百度贴吧...
- northstar机器人编程_《机器人构建实战》——导读
- 洛谷 P1008 [NOIP1998 普及组] 三连击
- access文本框如何分开_ACCESS 2007 如何在窗体中将一个文本框的内容复制给另外一个文本框?...
- (10)Verilog HDL异步复位同步释放
- 基于TCP协议用多线程实现并发服务器,实现思路、算法和demo
- 如何更改html广告,js 动态改变广告代码DIV的位置_原生JS通过innerHTML改变div位置...
- 约束和异常处理 20
- 高德地图拾取经纬度 + 搜索 + 标记
- Android开机优化
- chm文件打开时提示乱码
- excel取消工作表保护 获取原始密码
- 浅谈撰写软文标题时需要规避的误区
- IE7 - 千呼万唤始出来
- 【同花顺】同花顺解题
热门文章
- C++ 笔记(36)— 接收输入字符串的几种方法
- python2 安装faiss-gpu 报错 faiss/faiss/python/swigfaiss.i:241: Error: Unable to find ‘faiss/impl/platfo
- 项目中使用 Git 高频场景
- 浅显易懂 Makefile 入门 (01)— 什么是Makefile、为什么要用Makefile、Makefile规则、Makefile流程如何实现增量编译
- Python 生成器总结
- 解决:sql中将日期字符串当做日期类型处理
- LeetCode简单题之删列造序
- Camera系列规格参数
- CVD-ALD前驱体材料
- EyeQ进展The Evolution of EyeQ