hdu 2110 基础母函数

题意:退出本身并不麻烦,麻烦的是,退出的人需要取走相应比例(1/3)金额的资产。
假设公司此时一共有n种价值的资产,每种价值的资产数量已知,请帮助心烦意乱的XHD夫妇计算一共有多少种分割资产的方法。
现在我们引用《组合数学》上最经典的一个例题:
我们要从苹果、香蕉、橘子和梨中拿一些水果出来,要求苹果只能拿偶数个,香蕉的个数要是5的倍数,橘子最多拿4个,梨要么不拿,要么只能拿一个。问按这样的要求拿n个水果的方案数。
g(x)=(1+x^2+x^4+...)(1+x^5+x^10+..)(1+x+x^2+x^3+x^4)(1+x)  就是最终的生成函数
这个母函数让我想起了去年暑假集训,那个时候母函数搞了几天都不懂,bfs完全不会,dijkstra搞不懂就反复裸拍代码,acm入门确实很难,但是一旦入了门就能感受到其中的乐趣,学的越多,感觉自己的知识就越匮乏,也就想学的更多。正是这样的循环让我的代码能力得以提升,孜孜不倦的去追求更多的知识。
 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<queue>
 7 #include<map>
 8 using namespace std;
 9 #define MOD 1000000007
10 const int INF=0x3f3f3f3f;
11 const double eps=1e-5;
12 #define cl(a) memset(a,0,sizeof(a))
13 #define ts printf("*****\n");
14 const int MAXN=105;
15 int n,tt;
16 int c1[10010],c2[10010],m[MAXN],p[MAXN];
17 int main()
18 {
19     int i,j,k;
20     #ifndef ONLINE_JUDGE
21     freopen("1.in","r",stdin);
22     #endif
23     while(scanf("%d",&n)!=EOF)
24     {
25         if(n==0)    break;
26         int sum=0;
27         for(i=1;i<=n;i++)
28         {
29             scanf("%d%d",&p[i],&m[i]);
30             sum+=p[i]*m[i];
31         }
32         if(sum%3!=0)
33         {
34             printf("sorry\n");
35             continue;
36         }
37         sum/=3;
38         cl(c1),cl(c2);
39         for(i=0;i<=p[1]*m[1];i+=p[1])    c1[i]=1;   //初始化第一个函数
40         for(i=2;i<=n;i++)   //需要乘的次数
41         {
42             for(j=0;j<=sum;j++) //生成函数
43             {
44                 for(k=0;k<=p[i]*m[i]&&(k+j)<=sum;k+=p[i])   //相乘的函数
45                 {
46                     c2[k+j]+=c1[j];
47                 }
48             }
49             for(j=0;j<=sum;j++)
50             {
51                 c1[j]=c2[j]%10000;
52                 c2[j]=0;
53             }
54         }
55         if(c1[sum]==0)
56             printf("sorry\n");
57         else printf("%d\n",c1[sum]);
58     }
59 }

 

转载于:https://www.cnblogs.com/cnblogs321114287/p/4440294.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python SIP使用总结(WinLinux通用)

From: http://topic.csdn.net/u/20120324/22/cd8796f8-c601-492c-992d-3d70d58ba51b.html?07033688857013248#replyachor 本文原先发表与我的博客。这是我做图像处理的时候摸索到的&#xff0c;现分享给大家。在用PythonOpenCV做影像分割、识别以及变换检测时&#xff0c;有…

java quartz 2.2.3_java – Spring 3 Quartz 2错误

当我用Quartz 2使用Spring 3时&#xff0c;我收到以下错误。有人知道原因吗&#xff1f;错误&#xff1a;Exception in thread "main" org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.springframework.scheduling.quart…

python中调用C++写的动态库

一、环境&#xff1a;Windows XP Python3.2 1. dll对应的源文件(m.cpp)&#xff1a; #include <stdio.h>extern "C" {_declspec(dllexport) int add(int a, int b){return ab;}_declspec(dllexport) void print_sum(unsigned long ulNum){while(ulNum ! 0){p…

Java注解入门

第一部分:了解一下java1.5起默认的三个annotation类型一个是Override:只能用在方法之上的&#xff0c;用来告诉别人这一个方法是改写父类的。 一个是Deprecated:建议别人不要使用旧的API的时候用的,编译的时候会产生警告信息,可以设定在程序里的所有的元素上. 一个是SuppressWa…

AspNetCms 国内×××聚

国内CMS&#xff1a; 1.SiteServer CMS SiteServer CMS 网站内容管理系统&#xff08;著作权登记号2008SR15710&#xff09;是定位于中高端市场的CMS内容管理系统&#xff0c;能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大的网站平台。…

java语言中的 继承_Java语言有关继承的总结

一、继承1、继承的概念继承机制是面向对向程序设计不可缺少的关键概念&#xff0c;是实现软件可重用的根基&#xff0c;是提高软件系统的可扩张性与可维护性的主要途径。(它允许创建分等级层次的类)。继承是指一个类的定义可以基于另一个已经存在的类&#xff0c;即子类基于父类…

[转]ssh常用用法小结

ssh常用用法小结 1、连接到远程主机&#xff1a; 命令格式 &#xff1a; ssh nameremoteserver 或者 ssh remoteserver -l name 说明&#xff1a;以上两种方式都可以远程登录到远程主机&#xff0c;server代表远程主机&#xff0c;name为登录远程主机的用户名。 2、连接到远程主…

正则基础之——反向引用

From: http://blog.csdn.net/lxcnn/article/details/4476746 1 概述 捕获组捕获到的内容&#xff0c;不仅可以在正则表达式外部通过程序进行引用&#xff0c;也可以在正则表达式内部进行引用&#xff0c;这种引用方式就是反向引用。要了解反向引用&#xff0c;首先要了…

Android教程之android平台水波效果!提供源码!

基于Android平台实现的水波效果&#xff0c;提供源码&#xff0c;&#xff0c;效果图如下&#xff1a;

java文件全是数字编码_批量将Java源代码文件的编码从GBK转为UTF-8

最近在做一个项目&#xff0c;需要从以前的另外一个项目迁移大量源代码过来&#xff0c;但是由于另一个项目采用GBK编码格式&#xff0c;而新项目采用的UTF-8编码格式&#xff0c;如果直接把Java源代码复制到Eclipse中所有的中文信息都出现乱码。将文本文件的编码格式从GBK转UT…

对于 IE低版本不兼容问题的处理

坑爹的IE低版本浏览器总是需要我们去编写特殊的代码才可以&#xff0c;脑残的我之前总是编写一套CSS&#xff0c;让页面在Firefox、Chorme等牛逼闪闪的浏览器与IE这SB浏览器中的显示差不多&#xff0c;差不多&#xff0c;谁懂么&#xff0c;好好的网页改得真是让人心塞&#xf…

vim中正则表达式匹配单词边界

一般的高级语言中匹配单词边界用的是"\b"&#xff0c;匹配非单词边界用"\B"。 但是在vim中使用\b&#xff0c;发现不认识。上网搜索了一番&#xff0c;终于找到了&#xff1a; 匹配单词左边界&#xff1a;\< 匹配单词右边界&#xff1a;\> 至于匹…

C++对象内存布局--④VS编译器--单个虚拟继承

C对象内存布局--④VS编译器--单个虚拟继承 在VS2005编译器下&#xff0c;证明单个虚拟继承的内存布局&#xff1a;无论有无虚函数&#xff0c;必然含有虚基类表指针。虚基类表中的内容为本类实例的偏移和基类实例的相对偏移值。 如果有虚函数&#xff0c;那么基类的虚函数表跟派…

mysql 存取字符集_MySQL字符集设置—MySQL数据库乱码问题详解

MySQL(4.1以后版本) 服务器中有六个关键位置使用了字符集的概念&#xff0c;他们是&#xff1a;client 、connection、database、results、server 、system。MySQL有两个字符集概念&#xff1a;一个就是字符集本身&#xff0c;一个是字符集校验规则。字符集影响数据在传输和存储…

Eclipse --Type /com.xx.app/gen already exists but is not a source folde解决方案

两种解决方案&#xff1a;Two actions, first:1.Right click on the project and go to "Properties" 2.Select "Java Build Path" on the left 3.Open "Source" tab 4.Click "Add Folder..." and check "gen" and "sr…