fafu 1411
想了好久都没想到怎么去判断当分类dp的时候大于或者等于要求的 值时应该怎么半 后来经过停了 qlx的想法 然后就 敲了出来
这题说的是 一个整数 分解成几个素数的和 按这个数的含有的最大素数 进行排列给定的一个数 小于200 求这个数的 第k大的数是什么,然后让你计算出 第k大是组成数是什么.
分类进行dp 比如起始位进行dp 分类进行的dp可以按照从小到大的排列进行 大的数 只能用比他小的数 进行dp 类似于完全背包,这样在查找的时候也分类进行查找记得从大到小查找ok
- #include <iostream>
- #include<cstdio>
- #include<string.h>
- using namespace std;
- bool a[300];
- int p[50],dp[50][300],ber[100];
- void prime()
- {
- int count=0;
- memset(a,0,sizeof(a));
- for(int i=2;i<=201;i++)
- {
- if(a[i]==0){p[count++]=i;}
- for(int j=0,k;j<count&&(k=p[j]*i)<=201;j++)
- {
- a[k]=1;
- if(i%p[j]==0) break;
- }
- }
- //for(int i=0;i<count;i++)
- // printf("%d ",p[i]);
- }
- int work(int n,int k,int H)
- {
- int count=0;
- for(int i=H;i>=0;i--)
- {
- if(dp[i][n]<k)
- k-=dp[i][n];
- else if(dp[i][n]>=k)
- while(dp[i][n]>=k)
- {
- ber[count++]=p[i];
- n-=p[i];
- if(dp[i][n]<k)
- {
- k-=dp[i][n];
- break;
- }
- if(k==0||n==0) break;
- }
- if(k==0||n==0) break;
- }
- return count;
- }
- int main()
- {
- //eopen("data.txt","r",stdin);
- prime();
- int n,k,H,sum;
- int i,j;
- while(scanf("%d%d",&n,&k)==2)
- {
- sum=0;
- memset(dp,0,sizeof(dp));
- if(!n&&!k) break;
- for(i=0;i<46;i++)
- {
- if(p[i]>n) {H=i;break;}
- dp[i][p[i]]=1;
- int st=p[i];
- for( j=i;j>=0;j--)
- {
- for(int g=st+p[j];g<=n;g++)
- if(dp[g-p[j]]!=0)
- {
- dp[i][g]+=dp[i][g-p[j]];
- }
- }
- sum+=dp[i][n];
- }
- printf("%d\n",sum);
- if(k>sum)k=sum;
- int T=work(n,k,H);
- printf("%d=",n);
- for(i=0;i<T-1;i++)
- printf("%d+",ber[i]);
- printf("%d\n",ber[T-1]);
- }
- return 0;
- }
fafu 1411的更多相关文章
- bzoj 1411 [ZJOI2009]硬币游戏
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1411 [题意] N个硬币放在一个有2*N个位置的圆桌上,求T次操作后的情况.对于一个操 ...
- 【UVA 1411】 Ants (KM)
Young naturalist Bill studies ants in school. His ants feed onplant-louses that live on apple trees. ...
- UVA 1411 - Ants(二分图完美匹配)
UVA 1411 - Ants 题目链接 题意:给定一些黑点白点,要求一个黑点连接一个白点,而且全部线段都不相交 思路:二分图完美匹配,权值存负的欧几里得距离,这种话,相交肯定比不相交权值小,所以做一 ...
- BZOJ 1411&&Vijos 1544 : [ZJOI2009]硬币游戏【递推,快速幂】
1411: [ZJOI2009]硬币游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 897 Solved: 394[Submit][Status ...
- FAFU 1395
动态规划:...翻牌FAFU 1395 动态规划
- FAFU 1136 最长递增子序列
http://acm.fafu.edu.cn/problem.php?id=1136 根据dp建边,建边的时候记得判断如果原本数的大小就ok了 好久没在自家OJ上刷了 #include <ios ...
- 穷举(四):POJ上的两道穷举例题POJ 1411和POJ 1753
下面给出两道POJ上的问题,看如何用穷举法解决. [例9]Calling Extraterrestrial Intelligence Again(POJ 1411) Description A mes ...
- uva 1411 Ants (权值和最小的完美匹配---KM算法)
uva 1411 Ants Description Young naturalist Bill studies ants in school. His ants feed on plant-louse ...
- Calling Extraterrestrial Intelligence Again POJ 1411
题目链接:http://poj.org/problem?id=1411 题目大意:找两个素数p,q满足a/b<=p/q<=1 且p*q<=m,求p*q最大的一组素数对. 第一次想的是 ...
随机推荐
- JiraRemoteUserAuth
配置Jira7.x版本使用REMOTE_USER的HTTP Header方式登录: 前提是已经安装好了JIRA,并且前端使用apache或者nginx拦截对应的地址进行认证,认证之后访问对应的应用的时 ...
- 23种设计模式之组合模式(Composite)
组合模式又称为整体-部分(Part-whole)模式,属于对象的结构模式.在组合模式中,通过组合多个对象形成树形结构以表示整体-部分的结构层次.组合模式对单个对象(即叶子对象)和组合对象(即容器对象) ...
- STM8L外部中断 为何 死循环 寄存器操作
STM8L 系列单片机是 ST公司推出的低功耗单片机,与STM8S系列相比功耗降低了很多,但内部结构也删减了很多,使用时一定要仔细阅读手册. 这是第一次使用STM8,实现功能不是很复杂就没想研究库函 ...
- 7.22 python线程(3)
2018-7-22 10:28:29 回来啦! 6.条件 # !/usr/bin/env python # !--*--coding:utf-8 --*-- # !@Time :2018/7/20 1 ...
- hihocoder 1334 - Word Construction - [hiho一下第170周][状态压缩+DFS]
题目链接:https://hihocoder.com/problemset/problem/1334 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Given N wo ...
- a loosely strongly typed language
JavaScript: The Definitive Guide, Sixth Edition by David Flanagan As explained above, the following ...
- python xlwt 设置单元格样式-合并单元格
xlwt模块详解--合并单元格 import xlwtworkbook = xlwt.Workbook()worksheet = workbook.add_sheet('My sheet')# 合并第 ...
- Spring Data 介绍 (一)
简介 Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷 Spring Data JPA能干什么 可以极大的 ...
- Charles 使用(拦截与修改)
一.http 拦截(Breakpoints) 选取需要拦截的地址,鼠标右击选择Breakpoints 二.拦截结果与修改 可以在请求与返回结果中修改内容 1.所拦截的数据包 2.所拦截的请求 3.所拦 ...
- 10个实用的Django建议(转)
前言:随着Django1.4第二个候选版的发布,虽然还不支持Python3,但Django团队已经在着手计划中,据官方博客所说, Django1.5将会试验性的支持python3.Django 作为一 ...