注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

z55250825

一只蒟蒻

 
 
 

日志

 
 

【Bzoj2729】【Hnoi2012】【排队】  

2014-04-21 14:57:43|  分类: AC题目 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
    0.0 貌似听到延期觉得坑的Oier有很多额...哭笑不得的感觉...码了的滚出OI的总结就这样扔到草稿箱去了233...
    题目大意:两个老师,一群男的,一群女的去排队,女的不能在一起,老师不能在一起。求方案。
    一开始忘了一种情况...就是老师中间有女的...然后写的插空...= =咱们考虑两种情况分别讨论,第一种是老师一开始就被男的分割开了,这个是 A(n+1,2)*A(n+3,m),第二种是一个女生分割开了老师们,咱们把老师看做一个整体插入,然后再考虑把一个女的插入到老师那儿,然后其余的插空,然后这个是 (n+1)*m*A(n+2,m-1)
    即 n!(A(n+1,2)*A(n+3,m)+2*(n+1)*m*A(n+2,m-1))
    可以写一个高精度乘法和加法即可。
========================

program bzoj2729;
type arr=array[0..30000]of longint;

var a,b,c:arr;
    n,m:longint;

procedure cheng(a:arr;b:longint;var c:arr);
var i,j,len:longint;
begin
  for i:=1 to a[0]+10 do
    c[i]:=0;
  for i:=1 to a[0] do
    begin
     c[i]:=c[i]+a[i]*b;
     c[i+1]:=c[i+1]+(c[i] div 10);
     if c[i]>=10 then c[i]:=c[i] mod 10;
    end;
  inc(i); 
  while c[i]>=10 do
   begin
     c[i+1]:=c[i+1]+(c[i] div 10);
     c[i]:=c[i] mod 10;
     inc(i);
   end;
  inc(i);
  while (c[i]=0)and(i>1)do dec(i);
  c[0]:=i;
end;

procedure plus(a:arr;var b,c:arr);
var i,j,len:longint;
begin
  len:=a[0];
  if len<b[0] then len:=b[0];
  for i:=1 to len do c[i]:=0;
  for i:=1 to len do
   begin
     c[i]:=c[i]+a[i]+b[i];
     c[i+1]:=c[i+1]+(c[i] div 10);
     if c[i]>=10 then c[i]:=c[i] mod 10;
   end;
  inc(len);
  while (c[len]=0)and(len>1)do dec(len);
  c[0]:=len;
end;

procedure cal(n:longint;var a:arr);
var len:longint;
begin
  len:=0;
  while n<>0 do
   begin
     inc(len);
     a[len]:=n mod 10;
     n:=n div 10;
   end;
  a[0]:=len;
end;

procedure init;
var i:longint;
begin
  read(n,m);
  cal(2*(n+1)*m,a);
  for i:=n+4-m to n+2 do
     cheng(a,i,a);
  cal(n*(n+1),c);
  for i:=n+4-m to n+3 do
    cheng(c,i,c);
  plus(a,c,a);
  for i:=2 to n do
    cheng(a,i,a);
  for i:=a[0] downto 1 do
   write(a[i]);
end;

begin
  init;
end.


  评论这张
 
阅读(75)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017