洛谷P1021邮票面值设计 [noip1999] dp+搜索
正解:dfs+dp
解题报告:
第一眼以为小凯的疑惑
ummm说实话没看标签我还真没想到正解:D
本来以为这么多年前的noip应该不会很难:D
看来还是太菜了鸭QAQ
然后听说题解都可以被6,6 or 7,8的数据卡掉?
不管不管先把题解的思路放下qwq
(话说其实我觉得虽然会被卡掉但其实还挺妙的了呢,,,至少我这种菜鸡想不出来,,,好傻逼啊我QAQ
大概说下,就是dfs+dp(,,,我好像说了句废话?QAQ
分别详细说下这俩趴qwq
dfs(i,mx):枚举到第i个数了,然后连续最大能表示数是mx
然后显然可以让邮票面值单调递增,且第i个不能大于mx+1(否则mx+1就无法表示了QAQ)
然后每次dp算下能表示的mx,继续dfs
dp(i):第1到第i个数的连续最大能表示数
开个f[i]存的是i最少可以用几张邮票表示
然后就可以了qwq
但是似乎复杂度是错的,,,
然后另外一个正解是打表,,,
umm,,,算了我放弃我估计我是搞不出来了的QAQ
不过研究了半天之后在讨论区看到说模拟退火可以过这题?
然而好像又说7 8的数据是不欧克的,也不知道是时间不欧克还是答案是WA的鸭QAQ
不管先先放下讨论区里大佬说的模拟退火的代码qwq
现在是先看不懂的QAQ就只是mk下不会研究,等学了之后再说QAQ
#include<iostream>
#include<cstring>
using namespace std;
][];//[num][used]
];
];
],maxnum;
;
,times=;//not best
bool rand(int mdf){
+))%>rate);
}
int n,k;
int fcannot,lastcan;
int now;
int main(){
cin>>n>>k;
for(int _233=times;_233;_233--){
memset(can,,sizeof(can));
memset(cangen,,sizeof(cangen));
can[][]=true;
cangen[]=true;
choose[]=;
;i<=n;i++){
can[i][i]=true;
cangen[i]=true;
}
fcannot=n+;
lastcan=n;
;i<k;i++){
;j++){
if(!cangen[j]){
fcannot=j;
break;
}
}
now=fcannot;
;j<;j++){
if(rand(j)){
>choose[i-]){
now-=;
}else{
break;
}
}
}
choose[i]=now;
;i<=lastcan;i++){
;j<n;j++){
if(can[i][j]){
)continue;
can[i+now][j+]=true;
cangen[i+now]=true;
lastcan=max(lastcan,i+now);
}
}
}
}
;j++){
if(!cangen[j]){
fcannot=j;
break;
}
}
fcannot--;
if(fcannot>maxnum){
;i<;i++){
bestsel[i]=choose[i];
}
maxnum=fcannot;
}
}
;i<k;i++){
cout<<bestsel[i]<<" ";
}
cout<<endl;
cout<<"MAX="<<maxnum;
}
QAQQQQQ
洛谷P1021邮票面值设计 [noip1999] dp+搜索的更多相关文章
- 洛谷P1021 邮票面值设计
题目描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1-MAX之间的每一个邮资值都能得到 ...
- 洛谷 P1021 邮票面值设计
题目描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1-MAX之间的每一个邮资值都能得到 ...
- 洛谷——P1021 邮票面值设计
https://www.luogu.org/problem/show?pid=1021 题目描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都 ...
- 洛谷P1021邮票面值设计
题目 一道很经典的搜索题,可以锻炼搜索的能力,比如可以用dfs覆盖加dp的方式来寻找+更新答案.而且还可以通过在递归中增加数组的方式来辅助搜索. #include <bits/stdc++.h& ...
- P1021 邮票面值设计(dfs+背包dp)
P1021 邮票面值设计 题目传送门 题意: 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15N+K≤15)种邮票的情况下 (假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大 ...
- P1021 邮票面值设计
P1021 邮票面值设计 题目描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1-MAX ...
- P1021 邮票面值设计——搜索+完全背包
P1021 邮票面值设计 题目意思是你最多用n张邮票,你可以自己设定k种邮票的面值,每种邮票数量无穷,你最多能用这k种邮票在不超过n张的情况下,组合成的价值要求是从1开始连续的, 求最大能连续到多少: ...
- [NOIP1999提高] CODEVS 1047 邮票面值设计(dfs+dp)
dfs出邮票的各种面值,然后dp求解. ------------------------------------------------------------------------------- ...
- 洛谷 P2725 邮票 Stamps Label:DP
题目背景 给一组 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K —— 表示信封上能够贴 K 张邮票.计算从 1 到 M 的最大连续可贴出的邮资. 题目描述 例如,假设有 1 分和 3 ...
随机推荐
- 分析轮子(一)-ArrayList.java
前言:之前也看过一些JDK源码,不过没有留下痕迹,经久年月就淡忘了,现在的时机也差不多了,想再看一次,并且记录下来自己的感想,于是从自己使用最多最熟悉的地方开始!并且看的过程中,我希望自己思考一下如下 ...
- C# websocket与html js实现文件发送与接收处理
C# websocket与html js实现文件发送与接收处理 using System; using System.Collections.Generic; using System.Linq; u ...
- Atitit r2017 r6 doc list on home ntpc.docx
Atitit r2017 r6 doc list on home ntpc.docx 驱动器 D 中的卷是 p2soft 卷的序列号是 9AD0-D3C8 D:\ati\r2017 v4 raf\r2 ...
- windows上RSA密钥生成和使用
一,下载安装windows平台openssl密钥生成工具,执行安装目录bin下的"openssl.exe",执行后弹出命令窗口如下 运行 二,生成私钥 输入"genrsa ...
- zookeeper入门及使用(二)- 状态查看
查看服务的角色,看Mode字段,有follower及leader [root@c7bit1 bin]# echo stat | nc 127.0.0.1 2181 Zookeeper version: ...
- 阻止a链接跳转方法总结
总结下a标签阻止默认行为的几种简单方法(1) <a href="javascript:void(0);" > 点我 </a> onclick方法负责执行js ...
- Phoenix 5.0 hbase 2.0 org.apache.hadoop.security.authentication.util.KerberosUtil.hasKerberosKeyTab
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- How not to alienate your reviewers, aka writing a decent rebuttal?
[forwarded from https://nebelwelt.net/blog/20180704-rebuttal.html] Assuming you have given everythin ...
- webStorm的使用
最近要写点前端的东西,ideaCE版对js支持不好,写着很蛋疼,于是乎尝试了网上很流行的前端webstorm,但是在加载库文件时总是出错. 源文件:<script src="/jque ...
- 理解vue之element-ui中的 <template slot-scope="scope">
https://blog.csdn.net/tg928600774/article/details/81945140?utm_source=blogxgwz1