在家里面数标坏了,欠账不还唯一的办法法是?

[ACM] HDU 3398 String (从坐标0,0走到m,n且不能与y=x-1相交的方法数,整数唯一分解定理)
Problem Description
Recently, lxhgww received a task : to generate strings contain
& 039;0 & 039;s and
& 039;1 & 039;s only, in which
& 039;0 & 039; appears exactly m times,
& 039;1 & 039; appears e
Problem Description
Recently, lxhgww received a task : to generate strings contain '0's and '1's only, in which '0' appears exactly m times, '1' appears exactly n times. Also, any prefix string of it must satisfy the situation that the number of 1's
can not be smaller than the number of 0's . But he can't calculate the number of satisfied strings. Can you help him?
T(T<=100) in the first line is the case number.
Each case contains two numbers n and m( 1 <= m <= n <= 1000000 ).
Output the number of satisfied strings % .
Sample Input
Sample Output
HDOJ Monthly Contest –
解题思路:
题意为一个字符串只由0,1组成,且0有m个,1有n个,要求该字符串中任意的前缀中1的个数不能小于0的个数,问这样的字符串一共有多少个。结果对取模。
将构造字符串的过程转化到二维坐标上去,1用y表示,0用x表示,从坐标(0,0)出发,0代表向右走(x增加),1代表向上走(y增加),因为0有m个,1有n个,所以最后到达的坐标为
(m,n) ,单纯考虑从0,0走到m,n一共有C(n&#43;m,m)种方法,又因为任意前缀中1的个数不能小于0,所以y>=x,也就是合法走的路线经过的坐标要么在y=x上,要么在其上边,那么
不合法的路线经过的坐标则满足y<x,也就是路线不能与y=x-1相交,因为只要一相交,就不满足1的个数不能小于0的个数。
所以不合法的路径一定与y=x-1相交,找到(0,0)关于y=x-1的对称点(1,-1),从(1,-1)走到(m,n)一定与直线y=x-1相交,因为m,n在该直线的上边,1,-1在该直线的下
边。在这里设交点为P,那么路线就以P为分割点可以分为两部分,上面一部分取个名字叫不合法路线,下面一部分取个名字叫合法路线。那么从1,-1走到m,n有多少种方法也就
是从0,0走到m,n的不合法的方法数。仔细想一想为什么呢?为什么要找对称点,在对称直线一侧走的路线总可以在另一侧找到路线与之对称,刚才我们从1,-1走到m,n的那一段
合法路线沿着y=x-1再对称过去,不合法路线就不用对称了,因为不合法路线已经与y=x-1相交了(其实那一段合法路线的最后一个点也与y=x-1相交),这样就有了从0,0到m,n
的一种方案,总的来说就是对于从1,-1到m,n的每一条路线,都有从0,0到m,n关于y=x-1对称的一条路线与之对应。从1,-1走到m,n方法数为C (m&#43;n,m-1)。
所以本题的答案就是C(n&#43;m,m) - C (m&#43;n,m-1)。
那么接下来的问题就是求上面的式子了。
上面式子最终可以化为
(n&#43;1-m)*(n&#43;m)!
(m! *(n&#43;1)!)
直接求肯定不行,因为涉及到了除法的取模运算。
考虑整数唯一分解定理:
任意正整数都有且只有一种方式写出其素因子的乘积表达式。
A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)
其中pi均为素数
那么可以把每个数都化成这样的形式,然后上下对于相同的素因子进行约分,也就是指数相减,对于一个素数pi,我们只要知道最终pi的指数是多少就可以了(上下都约分后的指数)
还有把阶层看作一个数,比m! 怎样求m!里面素数2的指数呢?
m/=2; cnt&#43;=m; }
就可以了,为什么呢?考虑m=4,则m!=
4*3*2*1, 第一次m/=2,是计算m!里面有多少个数能整除2的(有4,2),所以cnt&#43;=2,有两个数贡献了两个素数2,接下来第二次m/=2,是计算m!里面有多少个数能整除4的,有1个数又贡献了一个素数2.
const int maxn=1000000;
const int mod=;
bool isprime[maxn*2+10];
int prime[maxn*2+10];
int len=0;//素数的个数
void sieve(int n)//筛n以内的素数
for(int i=0;i<=n;i++)
isprime[i]=1;
isprime[0]=isprime[1]=0;
for(int i=2;i<=n;i++)
if(isprime[i])
prime[len++]=i;
for(int j=2*i;j>t;
while(t--)
long long ans=1;//记得要用long long
cin>>n>>m;
int nm=n+1-m;
for(int i=0;i<len&&prime[i]<=(n+m);i++)//prime[i]<=(n+m)是因为拆成素数幂相乘的形式该素数不会大于n+m,最大(n+m)!
(n+m)*(n+m-1)*(n+m-2).....
int cnt=0;//分解为素数prime[i]的指数是多少
while(nm%prime[i]==0)//nm中有多少个prime[i],也就是把nm分解后prime[i]的指数
nm/=prime[i];
cnt=cnt+cal(prime[i],n+m)-cal(prime[i],m)-cal(prime[i],n+1);//加上分子的指数再减去分母的指数
for(int j=1;j=mod)
cout<<ans<<当手里的每一张牌都是坏牌,想要赢一把的唯一办法就是打破游..._shuai575吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:3贴子:
当手里的每一张牌都是坏牌,想要赢一把的唯一办法就是打破游...
当手里的每一张牌都是坏牌,想要赢一把的唯一办法就是打破游戏规则。收起|查看大图|向左转|向右转
贴吧热议榜
使用签名档&&
保存至快速回贴用修改符号修改病句。①我们要改掉不好的坏习惯。 ②中国的名胜古迹很多,长城是唯一的一处。 ③我们阅读_百度知道当手里的每一张牌都是坏牌,想要赢一把的唯一办法就是打破游戏规则。
喜欢就猛击分享!
个性网内容精选:唯一好车昨天也坏了·重庆晨报数字报
第006版:重庆新闻都市
300学员仅2台教练车
唯一好车昨天也坏了
这是个什么驾校啊?洪阳驾校西计分部称已着手处理 顾晓娟
  本报讯&(记者&顾晓娟)近来,家住南岸的张晓伟(化名)高高兴兴地到洪阳驾校西计分部报名学车,可进入场训阶段后他才发现,300个学员的驾校只有一辆车在场训。而昨日,因为这辆场训车也坏了,学员们只得停课。只有一辆场训车的驾校,究竟是个什么样子?记者先后前往该驾校的场训场地和报名点一探究竟。  报料:我们驾校只有一辆车  “300个学员的驾校只有一辆场训车。”张先生告诉记者,去年11月,他花1900元在洪阳驾校西计分部报名学车,今年10月,他进入场训。  “场训的学员特别多,最打挤的一次来了18个人,从早上8:30上课到中午下课,我只练了两次,不到十分钟。”张先生说,后来他才打听到,原来,该驾校一共只有两辆小车,一红一绿,但其中红色的一辆车在今年8月份的时候就坏了,无法行驶,只能用作基训。昨日,唯一的一辆场训车也损坏维修了,驾校无车可练。  张先生告诉记者,昨日是周末,来练场地的学员挺多,大家突然发现,平时他们场训用的绿车,竟然换成了8月份时就已经坏了的红车。  “这辆车可能是发动机有问题,而且还漏油。”张先生说,车到处都生锈了,学员们一发动车辆就感觉车身发抖,仅仅练了一个多小时,驾校就终止了训练。更奇怪的是,这辆教练车前后都没有挂牌照。该校刘校长解释说,绿色教练车因为牙箱损坏,送到了汽修厂维修,所以才临时换车。  探访:公路主干道成训练场  本月22日,记者曾和该驾校的学员们一起去了他们的场训地———位于南滨路融侨半岛路段的“下河道”。这里是一处两车道的呈坡度的公路,为南滨路通向江边的城市主干道。驾校在公路上划了几道黄色的标志线,再竖起几根竹竿,占据了一个车道的公路,让学员们练习上坡起步和定点停车。  记者发现,虽然这里过往的车辆不多,但因为该路段路面笔直宽敞,车辆速度很快。除洪阳驾校外,还有两家驾校也在此练车。  据学员们介绍,从去年起,他们分别花了元不等的价格在洪阳驾校报名学车,进入场地训练后,他们发现场训积压了大量的学员:“一是没有场地训练,大家练不好,考不起;二是驾校只有一辆教练车,每次只有8个考试名额,所以积压了学员。”  学员们告诉记者,他们中的不少人,到目前为止除了在“下河道”训练过上坡起步和定点停车,偶尔在公路上练习限宽门、侧范围停车外,其他的场考项目,则只能等到考试前到洪阳驾校位于鱼洞的总校练习几次。  现状:车辆少引发恶性循环  昨日,记者来到了洪阳驾校西计分部,在该驾校报名点外,记者见到了一辆红色小车,据工作人员介绍,他们就是临时用这辆车来当教练车的。  该驾校一工作人员告诉记者,目前,该驾校的确只有两辆场训车。&“其实早该买辆车了。”该工作人员称,该分校目前还没有通过考试的学员一共有300来人,车少,学员们又练得少,结果考不好,造成恶性循环。学员们意见大了,介绍到驾校报名的人也减少,驾校收入低,买车也困难了。他们也向校长建议过,再买一辆车,但没有成功。  校方:车已修好今恢复场训  随后,洪阳驾校西计分部相关负责人刘女士联系记者,称驾校此前一直能正常练车,这次属特殊情况。昨晚,汽修厂已经通知驾校取车,今日学员们就能正常练车了。  驾校是否只有一辆场训车,为何使用无牌车?该负责人并没有正面回答,她告诉记者,学员们意见大,主要的原因是因为考试名额有限。  “我们已经在着手处理此事,会尽快让学员恢复训练。”洪阳总校刘主任向记者表示,驾校相关的上级领导部门正在过问此事,今日将恢复训练。  22日,多名学员在南滨路融侨半岛段“下河道”处练车。&&&本报记者&摄  学员  意见  不小  “每次考试名额仅8个,只有一辆车,练得不好就考不起,积压的人多了,训练也打挤。”    也喊  头疼  驾校  “学员们意见大了,介绍到驾校报名的人也减少,驾校收入低,买车也困难了。”  相关新闻》》  一台小车  只能配8名学员  日前,市运管局和市公安交管局消息称,目前,我市驾校学员已经积压了2万多人。交管部门对教练车和学员的比例有了明确的规定:手动挡的小车学习周期为30天,只能配备8名学员;大车学习周期40天,一台车配备11名学员;而大客车学习周期则为60天,一台车也是8名学员。  “多一个学员都不能参加考试,如果有一位学员考试通过,则该驾校再增加一位学员的考试名额。”据透露,从8月1日起,交管部门已经启动了电脑控制系统,以此自动控制学员的考试数量。同时,有关部门正在草拟驾校学员合同范本,今年内将出台,范本中将明示一些详细的条款,更为学员们考虑,保护学员们的利益。本报记者&顾晓娟
对此文章发表评论
您对这篇文章的满意度
非常满意基本满意不太满意很不满意不做评价}

我要回帖

更多关于 战胜不可能的唯一办法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信