题意:若干组数据,分别问 N划分成K个正整数之和的划分数目、N划分成若干个不同正整数之和的划分数目、N划分成若干个奇正整数之和的划分数目。

解法:请见我之前的一篇博文内的Article 2——【noi 2.6_8787】数的划分(DP){附【转】整数划分的解题方法} http://www.cnblogs.com/konjak/p/5950919.html

注意——真心初始化要很小心啊!分类讨论最保险了!

 1 #include<cstdio>
2 #include<cstdlib>
3 #include<cstring>
4 #include<iostream>
5 using namespace std;
6 #define N 55
7
8 int f[N][N],g[N][N];
9
10 int main()
11 {
12 int n,k,i,j;
13 while (~scanf("%d%d",&n,&k))
14 {
15 for (i=1;i<=n;i++)
16 {
17 f[i][1]=1;
18 for (j=2;j<=k;j++)
19 {
20 if (i<j) f[i][j]=0;
21 if (i==j) f[i][j]=1;
22 if (i>j) f[i][j]=f[i-1][j-1]+f[i-j][j];
23 }
24 }
25 printf("%d\n",f[n][k]);
26
27 for (i=1;i<=n;i++)
28 {
29 g[i][1]=(i==1)?1:0;
30 for (j=2;j<=n;j++)
31 {
32 if (i<j) g[i][j]=g[i][i];
33 if (i==j) g[i][j]=g[i][j-1]+1;
34 if (i>j) g[i][j]=g[i][j-1]+g[i-j][j-1];
35 }
36 }
37 printf("%d\n",g[n][n]);
38
39 for (i=1;i<=n;i++)
40 {
41 f[i][1]=(i%2),g[i][1]=(i%2==0);
42 f[i][0]=f[i][1];
43 for (j=2;j<=n;j++)
44 {
45 if (i<j) f[i][j]=g[i][j]=0;
46 if (i==j) f[i][j]=1,g[i][j]=0;
47 if (i>j)
48 {
49 f[i][j]=f[i-1][j-1]+g[i-j][j];
50 g[i][j]=f[i-j][j];
51 }
52 f[i][0]+=f[i][j];
53 }
54 }
55 /*另一种简洁一点的打法,但我觉得若不能保证对就不要打这样的,不太保险...
56 f[0][0]=1; g[0][0]=1;
57 for(int i=1; i<=n; i++)
58 for(int j=1; j<=i; j++)
59 {
60 g[i][j] = f[i-j][j];
61 f[i][j] = g[i-j][j] + f[i-1][j-1];
62 }
63 */
64 printf("%d\n",f[n][0]);
65 }
66 return 0;
67 }

【noi 2.7_7219】复杂的整数划分问题(算法效率)的更多相关文章

  1. noi 7219:复杂的整数划分问题

    7219:复杂的整数划分问题 查看 提交 统计 提问 总时间限制:  200ms 内存限制:  65536kB 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>= ...

  2. 整数划分问题-解法汇总(暂有DP-递归)

    整数划分问题是一个锻炼组合数学,递归以及动态规划很好的例子,虽然问题看似简单,但是其中玄机万千,有人转化成为背包问题,有人用生成函数解,有人以此作为企业面试题目,可见这种问题的认可度还是很高的. 整数 ...

  3. 无限大整数相加算法的C语言源代码

    忙里偷闲,终于完成了无限大整数相加算法的C语言代码,无限大整数相加算法的算法分析在这里. 500位的加法运行1000次,不打印结果的情况下耗时0.036秒,打印结果的情况下耗时16.285秒. 下面是 ...

  4. hdu1028(整数划分问题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1028 整数划分问题 整数划分 --- 一个老生长谈的问题: 描述 整数划分是一个经典的问题.请写一个程 ...

  5. 栈习题(1)-对于任意的无符号的的十进制数m,写出将其转换为十六进制整数的算法(正确输出即可)

    /*对于任意的无符号的的十进制数m,写出将其转换为十六进制整数的算法(正确输出即可)*/ /* 算法思想:利用辗转取余法,每次都将余数存入栈中,直到被除数等0,退出循环. 输出栈里的内容即可 */ v ...

  6. #AcWing系列课程Level-2笔记——3. 整数二分算法

    整数二分算法 编写整数二分,记住下面的思路,代码也就游刃有余了! 1.首先找到数组的中间值,mid=(left+right)>>1,区间[left, right]被划分成[left, mi ...

  7. noi7219 复杂的整数划分问题

    noi7219 复杂的整数划分问题 #include <bits/stdc++.h> using namespace std; ; int dp1[maxn][maxn], dp2[max ...

  8. CUDA并行计算 | CUDA算法效率提升关键点概述

    文章目录 前言 存取效率 计算效率 性能优化要点 展现足够的并行性 优化内存访问 优化指令执行 前言   CUDA算法的效率总的来说,由存取效率和计算效率两类决定,一个好的CUDA算法必定会让两类效率 ...

  9. 【uva 1617】Laptop(算法效率--贪心,2种理解)

    题意:有N条长度为1的线段,要求使每条线段分别在相应区间,且"空隙"数目最小.输出"空隙"数.(1≤N≤100000) 解法:(P.S.我这题竟做了2个多小时, ...

  10. 【uva 1615】Highway(算法效率--贪心 区间选点问题)

    题意:给定平面上N个点和一个值D,要求在x轴上选出尽量少的点,使得对于给定的每个店,都有一个选出的点离它的欧几里德距离不超过D. 解法:先把问题转换成模型,把对平面的点满足条件的点在x轴的直线上可得到 ...

随机推荐

  1. LeetCode876 链表的中间结点

    给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4 ...

  2. 了解一下ajax

    AJAX:是一种无需重新加载页面的情况下能够更新部分(局部更新)网页的技术. 1. 概念:ASychronous JavaScript And XML 异步的JavaScript和XML 首先了解一下 ...

  3. 【十天自制软渲染器】DAY 02:画一条直线(DDA 算法 & Bresenham’s 算法)

    推荐关注公众号「卤蛋实验室」或访问博客原文,更新更及时,阅读体验更佳 第一天我们搭建了 C++ 的运行环境并画了一个点,根据 点 → 线 → 面 的顺序,今天我们讲讲如何画一条直线. 本文主要讲解直线 ...

  4. 数据分析 Pandas 简介和它的的数据结构

    本文主要讲Pandas 的Series和DataFrame 的相关属性和操作 1.Series的相关属性和操作# --Series是一种类似于一维数组的对象,只能存放一维数组!由以下两部分组成:# v ...

  5. oracle查看用户的系统权限,角色以及数据库对象权限

    select * from dba_sys_privs where GRANTEE='monkey'; select * from dba_role_privs where GRANTEE='monk ...

  6. python协程爬取某网站的老赖数据

    import re import json import aiohttp import asyncio import time import pymysql from asyncio.locks im ...

  7. ts类与修饰符

    最近在用egret做游戏,就接触到了ts,刚开始的时候觉得类挺难的,毕竟大多数的JavaScript工程师工作中不怎么需要用到这个,但是学起来就不愿意撒手了,真香! typescript其实是es6的 ...

  8. 【2020CSP-S模拟赛day5】总结

    爆零自闭赛 写在前面 于2022.11.1 这一次题目质量很高(以至于什么都不会) 再一度体验了省选Orz.比赛大体情况,刨去std, wzc神仙230分,比剩下的加起来都高.zyz神仙60分. 其余 ...

  9. has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    前端显示: has been blocked by CORS policy: Response to preflight request doesn't pass access control che ...

  10. RPC 接口必须是业务职责

    https://mp.weixin.qq.com/s/MYSF8lCF92ItG_Lc8nOspg 一个加班多新人多团队,我们的代码问题与重构 陈于喆 高可用架构 2020-10-21   微服务编码 ...