题目链接:

http://www.spoj.com/problems/INTSUB/

题意:

给定一个集合,该集合由1,2,3….2n组成,n是一个整数。问该集合中有趣子集的数目,答案mod1e9+7。
x的子集合有趣定义为,该子集中至少有两个数,a和b,b是a的倍数且a是集合中最小的元素。

题解:

枚举子集中最小的元素,然后确定其他的元素。
假设现在最小元素为a,则有2n/a-1个大于a的元素是a的倍数,且这些元素必须在子集中出现至少一个,剩下的大于a的数取和不取对答案不造成影响。
累计不同的a对答案的贡献即可。(具体公式请参看程序)

代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define MS(a) memset(a,0,sizeof(a))
 5 #define MP make_pair
 6 #define PB push_back
 7 const int INF = 0x3f3f3f3f;
 8 const ll INFLL = 0x3f3f3f3f3f3f3f3fLL;
 9 inline ll read(){
10     ll x=0,f=1;char ch=getchar();
11     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
12     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
13     return x*f;
14 }
15 //
16 const int maxn = 2e3+10;
17 const int mod = 1000000007;
18
19 int f[maxn];
20
21 int main(){
22     f[0] = 1;
23     for(int i=1; i<100; i++)
24         f[i] = (f[i-1]<<1)%mod;
25
26     int T = read();
27     for(int cas=1; cas<=T; cas++){
28         int n = read();
29         int ans = 0;
30         for(int i=1; i<=n; i++){
31             ans += 1LL * (f[2*n/i-1]-1) * f[2*n-i-(2*n/i-1)]%mod;
32             ans %= mod;
33         }
34         printf("Case %d: %d\n",cas,ans);
35     }
36     return 0;
37 }

转载于:https://www.cnblogs.com/yxg123123/p/6827578.html

Wannafly2016-12-27 SPOJ-INTSUB 数学相关推荐

  1. 【Scrum】2010.12.27

    基本上从今天开始,各队员开始各司其职: 12.27队员的工作和将要做的工作 Hui, 作为leader, 主要从事developer: 解决一些BUG, 加入好友等功能,以及需要登陆才能获取的信息 L ...

  2. 工程专硕在职研究生12月联考数学复习

    在职研究生12月联考数学–周杨老师 数学25题,75分,前15道选择题,后10道条件充分性判断题. 以基本概念为基础,只看和考试相关的概念,和考试不相关的不要看,想研究可以自己后面有空再看.加强计算能 ...

  3. 1+2+3+...∞=-1/12?——杨子曰数学

    1+2+3+-∞=-1/12?--杨子曰数学 超链接:数学合集 1+2+3+-∞=-1/12?哦哦哦,第一次看到我惊了щ(ʘ╻ʘ)щ,不科学啊!一堆正整数居然加出了一个负分数,Oh My God,绝对 ...

  4. English Learning - Day21 作业打卡 2022.12.27 周二

    English Learning - Day21 作业打卡 2022.12.27 周二 引言 一.给出如下短语的汉语释义 1. vanished youth 2. faded flowers 3. o ...

  5. 在PSP上玩《生化危机1-2-3 / Biohazard 1-2-3 / ResidentEvil 1-2-3》(Update:2007.12.27)

    在PSP上玩<生化危机 1-2-3 / Biohazard 1-2-3/ ResidentEvil 1-2-3> 不久前,索尼已经在PSP了推出官方的PS模拟器.(这应该是3.0版本增加的 ...

  6. 【链塔DApp日报】BDI指数增长10.19%,以太坊 24h交易额增长12.27%

    [链塔DApp日报]BDI指数增长10.19%,以太坊 24h交易额增长12.27% 时间:2月27日 根据链塔DApp数据分析,2月26日,链塔DApp行业指数BDI为227点,环比增长10.19% ...

  7. 【微语】第六周(12.21~12.27)

    12.21.总依赖别人,是这世界上最没有安全感又最危险的事. 12.22.吸引一个人的最好方式,是独立自主,而非刻意谄媚. 12.23.让你步入婚姻殿堂的不应该是年龄,而是两情相悦. 12.24.时间 ...

  8. 常见30种数学建模模型_11.12|认识数学模型与数学建模许可

    [报告题目]认识数学模型与数学建模 [报告时间]2020年11月12日17:00-19:30 [报告地点]A118 [主讲人]许可 [主讲人简介]许可,副教授,硕士生导师,沈阳理工大学优秀主讲教师,入 ...

  9. 一周信创舆情观察(2021.12.27~2022.1.3)

    一.一周舆情要点 2021年12月24日,<中华人民共和国科学技术进步法>修订通过,其中第九十一条明确:对境内自然人.法人和非法人组织的科技创新产品.服务,在功能.质量等指标能够满足政府采 ...

  10. iqoo升级鸿蒙,vivo iQOO 3升级更新PD1955_A_1.12.27固件rom全量刷机包

    vivo iQOO3手机是iQOO系列的第一台5G双模手机,硬件配置抵达封顶.安兔兔跑分58万+,其中CPU18万分,与前代相比有20%左右的提升,GPU21.5万分,相比前代提升10%左右,MEM1 ...

最新文章

  1. php 怎么支持中文图片显示,给图片添加水印(支持中文)并生成缩略图_php
  2. bzoj 1016: [JSOI2008]最小生成树计数【dfs+克鲁斯卡尔】
  3. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 创建 事件监听器 对应的 动态代理 | 动态代理的数据准备 | 创建调用处理程序 | 创建动态代理实例对象 )
  4. linux 开机自动启动脚本方法
  5. linux+sar+服务,sar服务监控Linux
  6. 使用 jquery 创建数组
  7. PHP提取中文首字母
  8. php warning: file_get_contents,Ecshop报警告:Warning: file_get_contents
  9. spss如何选择需要的变量?
  10. vue菜鸟从业记:完成项目最后一公里之真机测试和打包上线
  11. 职称计算机考试word2003真题,职称计算机考试《Word2003》历年真题回顾(1)
  12. 断路器(CircuitBreaker)设计模式
  13. ftk学习记(滑动条篇)
  14. 有趣的数学计算  1/9801 (结果 00,01,02,03。。。97)(使用到 BigDecimal )
  15. 绝对定位水平垂直居中(HTML、CSS)
  16. 测一下markdown之第一篇博文
  17. android壁纸 4k,4k动态壁纸下载-4k动态壁纸 安卓版v1.0.4-PC6安卓网
  18. 编写一个计算图形面积和周长的程序
  19. c语言用fun函数求最大公约数,c语言求最大公约数
  20. idea2020.1.1 窗口显示 Outdated version. 完美解决

热门文章

  1. 蒙特利尔大学助理教授唐建《图表示学习:算法与应用》研究进展
  2. 阿里格林深瞳计算机视觉岗实习面经
  3. 深度隐式表达系列 (一)
  4. 不知道怎么用GitHub怎么当程序员?拿出十分钟,包你会
  5. 量化评估推荐系统效果
  6. 进入hadoop_hadoop:伪分布模式参数配置指南
  7. python语言编写一个生成九宫格图片的代码_python简单实现9宫格图片实例
  8. 2021年上半年系统集成项目管理工程师综合知识真题及答案解析
  9. android studio table居中代码_html table表格标签内容如何居中显示?表格的align属性的用法介绍...
  10. python回归分析预测模型_在Python中如何使用Keras模型对分类、回归进行预测