- 浏览: 47834 次
文章分类
- 全部博客 (34)
- java (34)
- [转]当鼠标点击listview下面的空白区域时 (1)
- 如何使listview的原item选项仍然为选中状态 (1)
- DistortionEffect.swc 相关的一个bug (1)
- SSH整合 (1)
- JQuery页面前端遍历样例 (1)
- 2011ACM北京网络预选赛 F Machine scheduling (BUPT 216) (1)
- 样式和主题 (1)
- 12月1日 (1)
- Message 850 not found; No message file for product=network (1)
- facility=NL (1)
- Spring Security - Using custom Authentication Processing Filter (1)
- validateJarFile jar not loaded. See Servlet Spec 2.3 (1)
- section 9.7.2. Offending class: javax/servlet/Servlet.class (1)
- Android窗体自定义标题栏 (1)
- 51系列单片机C语言编程ADC模/数转换器程序模板 (1)
- 红色联盟十年了 永恒的记忆 (1)
- JSP开发中遇到的几个小问题 (1)
- ORACLE9卸载的问题 (1)
- AppDev讲座 关于ASP2.0新特性的 (1)
- 收藏的一些GIS网站 与大家共享 (1)
- 最近流行邮箱扩容 但是其实并不是我们真正需要的 (1)
- 在ASP.NET中应用TreeView控件 (1)
- 《使用 Microsoft .NET 的企业解决方案模式》读书笔记1 (1)
- Inside Qt Series (全集) (1)
- line线 (1)
- 笔试考察高数之平均要取多少个(0 (1)
- 1)中的随机数才能让和超过1。 (1)
- jquery获得select option的值 和对select option的操作 (1)
- java reflect (1)
- php的一个神奇的技巧--用变量直接访问数组元素 (1)
- Struts标签三目运算 (1)
- JavaScript中的document.cookie的使用 (1)
- 程序员最大的悲剧是碰到不靠谱的PD (1)
- struts2下载出问题 (1)
- jsp播放视频文件代码 (1)
最新评论
-
ifox:
我去试试 哈。
Struts标签三目运算 -
grandboy:
gmail的垃圾邮件处理得挺好的。
最近流行邮箱扩容 但是其实并不是我们真正需要的
2011ACM北京网络预选赛 F Machine scheduling (BUPT 216)
2011ACM北京网络预选赛 F Machine scheduling (BUPT 216)
这题比赛时候过得很纠结……最后还是学长过的……比赛时候脑子可能不够清楚,一直WA……
首先,这个题要分成两个部分解决:
第一部分:从n个东西里面取出r个,每个间距至少为 k (1~K不行,1~K + 1行)
第二部分:将这r个东西分成至多m组,可以有空组
第二部分貌似好久之前搞OI的时候干过……贴过来:
N球放在M个盒子里,求共有多少种放法
但是有3个不同的条件 :N个球是否相同,M个盒子是否相同,是否允许有盒子空着
球和球
盒和盒
空盒
情况数
有区别
有区别
有空盒
mn
有区别
有区别
无空盒
M!s(n,m)
有区别
无区别
有空盒
S(n,1)+s(n,2)+…+s(n,m),n>=m
S(n,1)+s(n,2)+…+s(n,n),n<=m
有区别
无区别
无空盒
S(n,m)
无区别
有区别
有空盒
C(n+m-1,n)
无区别
有区别
无空盒
C(n-1,m-1)
无区别
无区别
有空盒
F(m,n)
无区别
无区别
无空盒
F(m,n-m)
然后,其中的F(m,n)貌似是当时写过的一个DP,S(M,N)是第二类stirling数……递推公式:1 int S(int n,int m) {2 if (n == m || m == 1) return 1;3 return m * S(n - 1, m) + S(n - 1, m - 1);4 }第一部分:可以看作这么一个生成函数的相关问题:由于每个东西之间都隔了>=K-1的一段距离,因此一个可行解可以看作,长度为K,K + 1,K + 2的棍子r - 1个(我们认为每个棍子的头是我们取的点),拼接成长度为Len的一个大段,之后再堵上一个,就是一个Len +1的可行解……而r - 1根棍子,拼成长度为Len 的可行解数目,就是(X^K + X^(K + 1) + X^(K + 2) + .....) ^ (r - 1),这个多项式,展开之后,X^Len项前面的系数……不过……由于数据范围,直接搞是不成的……于是提取,变形:X^(K * (r - 1)) * (1 + X + X^2 + X ^3 +....)^(r - 1)然后再变形:X^(K * (r - 1)) * (1/(1 - x))^(r - 1)……然后参照Matrix67大神的日志,展开后面那项:1/(1-x)^n=1+C(n,1)x^1+C(n+1,2)x^2+C(n+2,3)x^3+...+C(n+k-1,k)x^k+...我们知道,要求长度为len的可行数目,也就是要X^Len项前面的系数,然后,由于前面提取出来了一个K * (r - 1),也就是去后面找len - K * (r - 1) 项的系数……也就是说,令pow = len - K * (r - 1),答案就是C(r - 1 + pow - 1, pow)……不过这还没完,因为咱们要拼成的长度是len,而总的长度是N,需要乘上这个长度len的开头位置的可能数……另外还需要特殊处理:咱们在处理的时候,是先用r - 1个拼接成长度为Len的一个大段,再堵上最后一个……当r == 1需要特判……代码: 1 #include <cstdio> 2 #include <cstring> 3 4 typedef long long Long; 5 const Long MOD = 1000000007; 6 7 Long F[1010][1010]; 8 Long C[2010][2010]; 9 Long S(int n,int m) {10 if (n == m || m == 1) return 1LL;11 if (F[n][m] > 0) return F[n][m];12 return F[n][m] = (m * S(n - 1, m) % MOD + S(n - 1, m - 1)) % MOD;13 }14 void init() {15 for (int i = 0; i <= 2000; i++) {16 for (int j = 0; j <= i; j++) {17 if (j == 0) C[i][j] = 1;18 else C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % MOD;19 }20 }21 }22 int n,r,k,m;23 24 int main() {25 memset(F,0xff,sizeof(F));26 init();27 while (scanf("%d%d%d%d",&n,&r,&k,&m) > 0) {28 if (r == 1) {printf("%d\n",n); continue;}29 Long ans = 0;30 for (int i = 1; i <= m && i <= r; i++) {31 ans = (ans + S(r,i)) % MOD;32 }33 Long tmp = 0;34 for (int len = k * (r - 1); len < n; len++) {35 int left = n - len;36 int pow = len - k * (r - 1);37 // r > 1 !!38 tmp = (tmp + left * C[r - 1 + pow - 1][pow]) % MOD;39 }40 ans = ans * tmp % MOD;41 printf("%lld\n",ans);42 }43 return 0;44 }
发表评论
-
jsp播放视频文件代码
2012-02-08 12:48 12271.avi格式?? <br>代码片断如下: ... -
struts2下载出问题
2012-02-07 15:58 826if (inputStream == null) { ... -
程序员最大的悲剧是碰到不靠谱的PD
2012-02-07 13:44 768怕碰到号称做过开发的PD。 -
JavaScript中的document.cookie的使用
2012-02-03 13:08 918我们已经知道,在 document 对象中有一个 co ... -
Struts标签三目运算
2012-02-02 16:54 1544${row[7] > 0 ? "正面& ... -
php的一个神奇的技巧--用变量直接访问数组元素
2012-01-11 16:49 1084cmmon.inc.php ------------- ... -
java reflect
2012-01-11 12:19 832import java.lang.reflect.Fi ... -
jquery获得select option的值 和对select option的操作
2011-12-21 16:34 1061获取Select : 获取select 选中的 te ... -
笔试考察高数之平均要取多少个(0,1)中的随机数才能让和超过1。
2011-12-21 09:49 1240<img src="http://hi ... -
line线
2011-12-20 16:04 10201.Connection接口:draw2d里面的线必须 ... -
Inside Qt Series (全集)
2011-12-20 14:33 1730Inside Qt 系列 QObject ... -
《使用 Microsoft .NET 的企业解决方案模式》读书笔记1
2011-12-19 10:49 742前言 关于设计模式的三个理念:使程序灵活;在不断演变的 ... -
在ASP.NET中应用TreeView控件
2011-12-19 09:54 869事情的起因是这样的,编写的ASP.NET程序,其中有一 ... -
最近流行邮箱扩容 但是其实并不是我们真正需要的
2011-12-17 15:49 1094相信经常用邮箱的朋友应该能感觉到,最近网络的免费邮箱都 ... -
收藏的一些GIS网站 与大家共享
2011-12-15 13:44 797收藏的一些GIS网站 与大家共享 地理信息系统论坛&l ... -
AppDev讲座 关于ASP2.0新特性的
2011-12-15 11:34 874</span></span>I ... -
ORACLE9卸载的问题
2011-12-14 18:13 714ORACLE数据库安装起来比较麻烦,卸载也不像微软的产 ... -
JSP开发中遇到的几个小问题
2011-12-14 12:09 938<p class="MsoNorma ... -
红色联盟十年了 永恒的记忆
2011-12-12 14:34 710<p class="MsoNorm ... -
51系列单片机C语言编程ADC模/数转换器程序模板
2011-12-09 08:39 5956/********************* ...
相关推荐
【标题】"第33届ACM亚洲区预选赛(杭州赛区)_网络选拔赛"是针对ACM(国际大学生程序设计竞赛)的一次重要赛事,该赛事在亚洲区的预选赛中设定了杭州赛区的网络选拔环节。ACM比赛是全球范围内极具影响力的编程竞赛,...
在本资源中,我们聚焦的是第29届ACM国际大学生程序设计竞赛亚洲区北京赛区预选赛的试题解析。ACM国际大学生程序设计竞赛(International Collegiate Programming Contest,简称ICPC或ACM竞赛)是一项享誉全球的编程...
2011ACM黑龙江大学校赛2011ACM黑龙江大学校赛2011ACM黑龙江大学校赛2011ACM黑龙江大学校赛2011ACM黑龙江大学校赛2011ACM黑龙江大学校赛
### 辽宁省第三届ACMICPC网络预选赛知识点总结 #### 一、足球比赛越位判断(Football Game Offside Judgment) ##### 题目背景: 在一场由团队X对阵团队Y的足球比赛中,需要根据特定规则判断X队队员小A传球给队友...
这是2012年成都市acm程序设计大赛预选赛的试题,供想参加acm竞赛的大学生使用!
宝贵的题目,试着做一下.2008年 ,哈尔滨acm 预选赛题目。
2008年,哈尔滨acm 预选赛题目,大家试着做一下。
知识点:2009ACM合肥赛区网络赛试题——Another Door Repairing Problem 在深入解析这一问题之前,我们首先理解一下ACM/ICPC(Association for Computing Machinery / International Collegiate Programming ...
【标题】"09年ACM武汉大学网络赛试题"涉及的是ACM(国际大学生程序设计竞赛,简称ICPC)的网络赛部分,这是一场由武汉大学主办的编程竞赛。ACM比赛是全球范围内影响力极大的编程竞赛,旨在锻炼大学生的算法设计、...
标题 "2010年ACM福州赛区网络赛题目" 和描述 "2010年ACM亚洲区预选赛福州赛区网络赛题目" 暗示了这是一场编程竞赛,具体是2010年ACM(国际大学生程序设计竞赛,简称ICPC)在福州赛区举行的网络选拔赛。这类比赛主要...
在全国范围内,ACM竞赛通常分为预选赛、区域赛、国家赛和世界总决赛等层次。省级比赛是预选赛的一部分,旨在筛选出优秀队伍晋级更高层级的比赛。浙江省作为中国计算机教育的重要地区,其省赛题目通常具有一定的代表...
【标题】"ACM 武汉网络赛 测试数据 标程" 涉及的知识点主要集中在程序设计竞赛(ACM,即国际大学生程序设计竞赛)领域,特别是关于比赛的准备、测试数据的处理以及如何参考“标程”进行学习。 在ACM程序设计竞赛中...
标题 "f_acm_USBACM_" 指涉的是一个针对Linux 4.0内核的USB ACM(Abstract Control Model)驱动程序。USB ACM是一种通用串行总线(USB)设备类驱动,它允许USB设备模拟传统的串行接口,如RS-232。这个驱动是为那些...
ACM/ICPC竞赛概述:介绍了ACM/ICPC竞赛的规模、影响力、题目形式、赛制和中国大陆赛区的命题现状。 题目要求:详细讨论了构成一道好题目的条件,包括题面和数据的正确性、题目描述的易于理解性、数据的强度、代码量...
【33届ACM杭州区域赛】是国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,简称ICPC)的一部分,这是一个备受瞩目的年度赛事,旨在挑战大学生在算法设计、编程速度和问题解决能力上的...
【北京大学ACM题库、北京大学ACM源码、浙江大学ACM源码】 这些资源是针对ACM(International Collegiate Programming Contest,国际大学生程序设计竞赛)的训练材料,旨在帮助学生提升算法设计、编程技巧和问题解决...
上海航芯ACM32F403芯片是一款基于ARMv8-M架构的高性能32位SoC芯片,支持Cortex-M33和Cortex-M4F指令集。它的最高系统工作频率可以达到180MHz,支持浮点运算和DSP。ACM32F403芯片内置了NVIC中断控制器、8通道DMA...
北邮(北京邮电大学)ACM比赛是针对计算机编程竞赛的一项重要活动,旨在培养学生的算法设计、编程和问题解决能力。2011年10月23日的北邮ACM比赛题目,作为训练材料,对于参赛者或者对算法有兴趣的学者来说,是一份...
【标题】"2011 ACM 多校联合 2011 MU11 13 FZU" 指的是一项编程竞赛,ACM(国际计算机学会)每年都会举办多场这样的竞赛,旨在提升学生的算法设计和编程能力。ACM竞赛通常包括一系列的编程题目,参赛队伍需要在限定...