洛谷 P1705 爱与愁过火
2024-08-31 16:11:34
题目背景
(本道题目隐藏了两首歌名,找找看哪~~~)
《爱与愁的故事第一弹·heartache》第三章。
爱与愁大神说这是ta的伤心指数,只不过现在好很多了,翻译只是看你无聊让你动动脑筋罢了(shit~~~)。虽然月落乌啼嘴上骂着:“我去年买了个表……纽曼表……”,但是结果还是请爱与愁大神去Pizza Hut吃了一顿。
题目描述
到了Pizza Hut,爱与愁大神由于不爽,所以存心想坑月落乌啼的钱,ta点了m样菜,每样菜ai元。月落乌啼预计只用n元,于是他让爱与愁大神重新从这m样菜中选r样。爱与愁大神还是想坑钱,于是ta打电话给你,让你编一个程序告诉ta有几种方案可以从m样菜中点取r样菜但是还能超过月落乌啼的预计n元。
输入输出格式
输入格式:
第1行:三个数 m,r,n。
第2行:m个数,每道菜需要的钱ai,两个数之间有空格。
输出格式:
只有一个整数,表示方案总数。
输入输出样例
说明
100%数据:m<=30,r<=m,m<=ai<=90 n<=2700
时限:前两个点1秒,中间两个点3秒,最后一个点6秒。
思路:动规
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,T,sum;
int num[],vis[];
void dfs(int tot,int s,int pre){
if(tot==m){
if(s>T) sum++;
return ;
}
for(int i=pre+;i<=n;i++)
if(!vis[i]){
vis[i]=;
dfs(tot+,s+num[i],i);
vis[i]=;
}
}
int main(){
scanf("%d%d%d",&n,&m,&T);
for(int i=;i<=n;i++)
scanf("%d",&num[i]);
dfs(,,);
cout<<sum;
}
40分暴力
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,T;
int sum,ans;
int num[];
int f[][300];
int main(){
scanf("%d%d%d",&n,&m,&T);
for(int i=;i<=n;i++)
scanf("%d",&num[i]),sum+=num[i];
f[][]=;
for(int i=;i<=n;i++)
for(int j=m;j>=;j--)
for(int k=num[i];k<=sum;k++)
f[j][k]+=f[j-][k-num[i]];
for(int i=T+;i<=sum;i++) ans+=f[m][i];
cout<<ans;
}
最新文章
- jQuery EasyUI视频教程合集
- Android6.0动态申请权限
- javascript中字符串格式转化成json对象记录
- PHP — 用PHP实现一个双向队列
- Unity3D 导入贴图、模型等资源文件时自动设置参数
- 限制UITextField/UITextView的输入字数与中文输入之后的英文换行问题
- List<;int>;是值类型还是引用类型
- iOS 处理socket粘包问题
- 了解一下Http常见状态码、Http协议的工作特点和原理、Http请求Post与Get的区别
- python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍
- 【视频】设计模式(Java)视频讲解
- 新 radio样式修改
- bond-vlan-bridge
- [例子]Ubuntu虚拟机设置固定IP上网
- centos7-内核版本降级
- Cocos Creator 的实现拖尾效果
- 【LOJ】#2037. 「SHOI2015」脑洞治疗仪
- 基于MySQL INNODB的优化技巧
- React的思想
- Rest之路 - 第一个Rest程序