HNOI2008明明的烦恼
写的很好的题解:http://www.cnblogs.com/zhj5chengfeng/archive/2013/08/23/3278557.html
我这种蒻蒻什么都不会啊……
代码:(copy的)
var
a:array[..]of longint;
su,p:array[..]of longint;
b:array[..]of boolean;
ans:array[..]of longint;
i,j,m,n,s,k,w,sum,c:longint;
procedure add(t,d:longint);
var
i:longint;
begin
for i:= to s do
while t mod su[i]= do
begin
inc(p[i],d);
t:=t div su[i];
end;
end;
procedure cheng(t:longint);
var
i:longint;
begin
for i:= to c do
ans[i]:=ans[i]*t;
for i:= to c- do
begin
inc(ans[i+],ans[i] div );
ans[i]:=ans[i] mod ;
end;
while ans[c]>= do
begin
ans[c+]:=ans[c] div ;
ans[c]:=ans[c] mod ;
inc(c);
end;
end;
begin
readln(n);
for i:= to n do
read(a[i]);
fillchar(b,sizeof(b),true);
for i:= to n do
if b[i] then
begin
inc(s);
su[s]:=i;
for j:= to n div i do
b[i*j]:=false;
end;
fillchar(p,sizeof(p),);
sum:=n-;
k:=n;
for i:= to n do
if a[i]<>- then
begin
for j:= to a[i]- do
begin
add(sum,);
dec(sum);
add(j,-);
end;
dec(k);
end;
c:=;
fillchar(ans,sizeof(ans),);
ans[]:=;
for i:= to s do
for j:= to p[i] do
cheng(su[i]);
for i:= to sum do
cheng(k);
for i:=c downto do
write(ans[i]);
end.
尼玛,总是出现莫名的bug ,浪费我的时间!
var i,j,sum,tot,n:longint;
a,b,p,d:array[..] of longint;
flag:boolean;
procedure init;
begin
readln(n);sum:=;tot:=;
for i:= to n do
begin
readln(d[i]);
if (d[i]=) or (d[i]>n-) then flag:=true;
if d[i]<>- then begin inc(tot);inc(sum,d[i]-);end;
end;
end;
procedure incc(x:longint);
var i:longint;
begin
for i:= to x do
begin
if x mod i= then
while x mod i= do
begin
inc(p[i]);
x:=x div i;
if x= then break;
end;
end;
end;
procedure decc(x:longint);
var i:longint;
begin
for i:= to x do
begin
if x mod i= then
while x mod i= do
begin
dec(p[i]);
x:=x div i;
if x= then break;
end;
end;
end;
procedure mul(x:longint);
var i:longint;
begin
for i:= to b[]+ do
begin
b[i]:=b[i]*x;
inc(b[i+],b[i] div );
b[i]:=b[i] mod ;
end;
while b[b[]+]<> do inc(b[]);
end;
procedure main;
begin
fillchar(p,sizeof(p),);
for i:=n--sum+ to n- do incc(i);
for i:= to n--sum do incc(n-tot);
for i:= to n do
if d[i]<>- then
begin
for j:= to d[i]- do decc(j);
end;
b[]:=;b[]:=;
for i:= to n do if p[i]<> then for j:= to p[i] do mul(i);
end;
procedure print;
begin
write(b[b[]]);
for i:=b[]- downto do
begin
if b[i]>= then write(b[i]) else
if b[i]>= then write('',b[i]) else
if b[i]>= then write('',b[i]) else
write('',b[i]);
end;
end;
begin
assign(input,'input.txt');assign(output,'output.txt');
reset(input);rewrite(output);
flag:=false;
init;
if flag then writeln() else begin main;print;end;
close(input);close(output);
end.
HNOI2008明明的烦恼的更多相关文章
- BZOJ 1005 [HNOI2008] 明明的烦恼(组合数学 Purfer Sequence)
题目大意 自从明明学了树的结构,就对奇怪的树产生了兴趣...... 给出标号为 1 到 N 的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为 N( ...
- bzoj1005 [HNOI2008]明明的烦恼
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3032 Solved: 1209 Description ...
- 【bzoj1005】[HNOI2008]明明的烦恼
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4175 Solved: 1660[Submit][Stat ...
- BZOJ 1005: [HNOI2008]明明的烦恼 Purfer序列 大数
1005: [HNOI2008]明明的烦恼 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- bzoj 1005: [HNOI2008]明明的烦恼 prufer编号&&生成树计数
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2248 Solved: 898[Submit][Statu ...
- BZOJ 1005: [HNOI2008]明明的烦恼( 组合数学 + 高精度 )
首先要知道一种prufer数列的东西...一个prufer数列和一颗树对应..然后树上一个点的度数-1是这个点在prufer数列中出现次数..这样就转成一个排列组合的问题了.算个可重集的排列数和组合数 ...
- 【BZOJ1005】[HNOI2008]明明的烦恼(prufer序列)
[BZOJ1005][HNOI2008]明明的烦恼(prufer序列) 题面 BZOJ 洛谷 题解 戳这里 #include<iostream> #include<cstdio> ...
- 【BZOJ 1005】 1005: [HNOI2008]明明的烦恼 (prufer数列+高精度)
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4981 Solved: 1941 Description ...
- BZOJ 1005 [HNOI2008]明明的烦恼 (Prufer编码 + 组合数学 + 高精度)
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5786 Solved: 2263[Submit][Stat ...
- 【BZOJ1005/1211】[HNOI2008]明明的烦恼/[HNOI2004]树的计数 Prufer序列+高精度
[BZOJ1005][HNOI2008]明明的烦恼 Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可 ...
随机推荐
- Spark Streaming揭秘 Day33 checkpoint的使用
Spark Streaming揭秘 Day33 checkpoint的使用 今天谈下sparkstreaming中,另外一个至关重要的内容Checkpoint. 首先,我们会看下checkpoint的 ...
- 关于rsync的密码问题
今天在做关于rsync的实验时,发现关于rsync的密码问题还是有几点需要注意的,因此特意归纳了一下(rsync的版本是3.1.0): 1.服务器端的密码文件的格式必须为“用户名:密码”,所属者必须为 ...
- C# 将Datatable作为参数,传入存储过程
//创建一个静态方法 public static DataSet fnInsertSingleUser(DataTable v_dt, params string[] param) { try { S ...
- NodeJs环境部署
node cli.js install npm -gf npm install express -gd
- MySQL存储引擎 InnoDB/ MyISAM/ MERGE/ BDB 的区别
MyISAM:默认的MySQL插件式存储引擎,它是在Web.数据仓储和其他应用环境下最常使用的存储引擎之一.注意,通过更改 STORAGE_ENGINE 配置变量,能够方便地更改MySQL服务器的默认 ...
- 同时安装vs2010和VS2012后IEnumerable<ModelClientValidationRule>编译错误
错误 类型“System.Web.Mvc.ModelClientValidationRule”同时存在于“c:\Program Files (x86)\Microsoft ASP.NET\ASP.NE ...
- sybase下convert函数第三个参数(时间格式)
convert(varchar(10),字段名,转换格式) 比如:1.select user_id,convert(varchar(10),dayts,11) as dates from tb_use ...
- [译] ASP.NET 生命周期 – ASP.NET 上下文对象(六)
使用 HttpApplication 对象 ASP.NET 框架中的许多类都提供了许多很方便的属性可以直接映射到 HttpContext 类中定义的属性.这种交叠有一个很好的例子就是 HttpAppl ...
- 改变navigationbar 标题颜色
navigationController.navigationBar.titleTextAttributes=@{NSForegroundColorAttributeName:[UIColor yel ...
- ExtJs 4.2.1 复选框数据项动态加载(更新一下)
最近在做博客项目,后台管理用的是ExtJs4.2.1版本,因为是初学所以在使用的时候也遇到不少的这样或那样的问题,也写了不少这方面的博客,今天要写的博客是关于复选框数据项动态的加载功能,以前也没用过, ...