URAL 1036(dp+高精度)
Description
Input
Output
Sample Input
input | output |
---|---|
2 2 |
4 |
Hint
#include<stdio.h>
#include<cstring>
#include<iostream>
using namespace std;
int dp[][][];//第100位存的是数据的长度
int n,tot;
void add(int sum[],int num[])
{
int i,j,temp[];
int len1=sum[],len2=num[];
int max=len1>len2 ? len1:len2;
int jin=;
for(i=;i<max;i++){
int m=jin+sum[i]+num[i];
if(m>=) {jin=;m-=;}
else jin=;
temp[i]=m;
}
if(jin) temp[i++]=jin;
for(j=;j<i;j++)
sum[j]=temp[j];
sum[]=i;
}
void muti_dan(int num[],int data[],int n,int h)
{
int temp[],i,j;
memset(temp,,sizeof(temp));
int len=num[];
int jin=;
for(i=;i<len;i++){
int m=num[i]*n+jin;
jin=m/;
if(jin)m-=jin*;
temp[i]=m;
}
if(jin) temp[i++]=jin;
data[-h]=i;
for(j=;j<i;j++){
data[j]=temp[j];
}
}
void multi(int num[],int num1[])
{
int temp[],sum[],i,j;
memset(sum,,sizeof(sum));
int len1=num[],len2=num1[];
for(j=;j<len2;j++){
memset(temp,,sizeof(temp));
muti_dan(num,&temp[j],num1[j],j);
temp[]+=j;
add(sum,temp);
}
for(i=;i<sum[];i++){
num[i]=sum[i];
}
num[]=sum[];
}
void display(int num[])
{
int len=num[];
for(int i=len-;i>;i--)
cout<<num[i];
cout<<num[]<<endl;
}
void solve()
{
int i,j,k;
if(tot%) {printf("0\n");return;}
int sum=tot/;
memset(dp,,sizeof(dp));
for(i=;i<;i++) {
dp[][i][]=;
dp[][i][]=;
} for(i=;i<n-;i++){
for(j=;j<=sum;j++){
for(k=;k<=&&j+k<=sum;k++){
add(dp[i+][j+k],dp[i][j]);
}
}
} multi(dp[n-][sum],dp[n-][sum]);
display(dp[n-][sum]);
}
int main(void)
{
while(cin>>n>>tot){
solve();
}
return ;
}
URAL 1036(dp+高精度)的更多相关文章
- DP+高精度 URAL 1036 Lucky Tickets
题目传送门 /* 题意:转换就是求n位数字,总和为s/2的方案数 DP+高精度:状态转移方程:dp[cur^1][k+j] = dp[cur^1][k+j] + dp[cur][k]; 高精度直接拿J ...
- 1166 矩阵取数游戏[区间dp+高精度]
1166 矩阵取数游戏 2007年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description [ ...
- bzoj 1089 [SCOI2003]严格n元树(DP+高精度)
1089: [SCOI2003]严格n元树 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1250 Solved: 621[Submit][Statu ...
- CF23 E. Tree 树形dp+高精度
题目链接 CF23 E. Tree 题解 CF竟让卡常QAQ dp+高精度 dp[x][j]表示以x为根的子树,x所属的联通块大小为j,的最大乘积(不带j这块 最后f[x]维护以x为根的子树的最大答案 ...
- 【bzoj2764】[JLOI2011]基因补全 dp+高精度
题目描述 在生物课中我们学过,碱基组成了DNA(脱氧核糖核酸),他们分别可以用大写字母A,C,T,G表示,其中A总与T配对,C总与G配对.两个碱基序列能相互匹配,当且仅当它们等长,并且任意相同位置的碱 ...
- poj 1205 :Water Treatment Plants (DP+高精度)
题意:有n个城市,它们由一个污水处理系统连接着,每个城市可以选择 1.将左边城市过来的污水和右边城市过来的污水连同本身的污水排到河里 >V< 2.将左边来的污水连同自己的污水排到右边 ...
- URAL 1012 K-based Numbers. Version 2(DP+高精度)
题目链接 题意 :与1009一样,不过这个题的数据范围变大. 思路:因为数据范围变大,所以要用大数模拟,用java也行,大数模拟也没什么不过变成二维再做就行了呗.当然也可以先把所有的都进行打表,不过要 ...
- Ural 1036 Lucky Tickets
Lucky Tickets Time Limit: 2000ms Memory Limit: 16384KB This problem will be judged on Ural. Original ...
- POJ 1625 Censored!(AC自动机+DP+高精度)
Censored! Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 6956 Accepted: 1887 Descrip ...
随机推荐
- HTML知识点摘记
HTML HTML:(Hype Text Markup Language)超文本标记语言,是最基本的网页语言.代码由标签组成,不区分大小写. 由<html>开始,</html> ...
- Cortex-M3学习日志(二)-- 按键实验
有输出总会有输入,今天测试一下按键的功能,第一节已经说过了与GPIO端口相关的寄存器,这里不在重复,想要从端口读取数据,首先把FIODIR这个寄存器设置为输入,再从FIOPIN寄存器读取数据就可以了, ...
- WINDOWS硬件通知应用程序的常方法(五种方式:异步过程调用APC,事件方式VxD,消息方式,异步I/O方式,事件方式WDM)
摘要:在目前流行的Windows操作系统中,设备驱动程序是操纵硬件的最底层软件接口.为了共享在设备驱动程序设计过程中的经验,给出设备驱动程序通知应用程序的5种方法,详细说明每种方法的原理和实现过程,并 ...
- (7) 引用Objective-C class library
原文 引用Objective-C class library 这个范例是如何在Xamarin.ios中去使用一个我们自行在Xcode中开发的Objective-c Class Library. 主要会 ...
- XDocument读取xml的所有元素以及XPath语法
原文 http://www.cnblogs.com/xxyishutong/p/3326375.html <?xml version="1.0" encoding=&quo ...
- MCI 函数与命令
Microsoft 提供的 MMSYSTEM.H 文件中定义了调用 MCI 功能的数据类型和函数原型.在使用 MCI 功能的任何源模块中都应包含该文件. 1. MCI 函数 所有的 MCI 函数名都以 ...
- #include <iostream>
1 static_assert 2 std::nothrow 3 std::ref() 4 std::string 1 static_assert 执行编译时断言检查 语法 static_assert ...
- 【G-BLASTN 1.0正式发布】
[G-BLASTN 1.0正式发布]G-BLASTN使用GPU来加速NCBI-BLAST里的BLASTN模块,单块GTX780比四核CPU平均快6倍. http://www.comp.hkbu.edu ...
- 第十七周oj刷题——Problem B: 分数类的四则运算【C++】
Description 编写分数类Fraction,实现两个分数的加.减.乘和除四则运算.主函数已给定. Input 每行四个数,分别表示两个分数的分子和分母,以0 0 0 0 表示结束. Outpu ...
- powerdesigner反向MySQL5.1数据库 生成ER图
我用的powerdesigner是15.1版本,数据库是MySQL5.1.57 (1)首先新建一个“PhysicalDataModel”类型的文件,然后点击“Database”->"C ...