专栏文章
B 7 月 2 日作业 Solution
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minccof7
- 此快照首次捕获于
- 2025/12/02 00:06 3 个月前
- 此快照最后确认于
- 2025/12/02 00:06 3 个月前
数字 “2”
Description
给定正整数 ,求 这 个整数有几个 。
Solution
一道简单的找规律题,我们使用暴力代码先算出前几个的答案。
| 1 | 1 |
|---|---|
| 2 | 19 |
| 3 | 271 |
| 4 | 3439 |
| 5 | 40951 |
通过一些推导瞎搞可以发现,如果设 为 时的答案,那么递推式为:
需要使用高精度...
Code
采果子 (fruit)
Description
有 棵树,树上的果子采摘需要的时间 ,树上有 颗果实,所有果实的价值为 ,不过采摘这些果实有一个条件,如果你采摘了第 颗树上的果实,假设你下一次采摘的树编号为 ,那么要保证 。
Solution
裸的 01 背包,什么,你说那个条件?可以发现如果不满足条件只要交换顺序即可满足。
Code
Order(order)
Description
给定一字符串 (),按字典序输出他的全排列。
Solution
解法一
使用 求全排列,不在多说。
不给出 Code。
解法 2
Warning
这是
C++ 党专属的福利!STL 大法好!
这里着重描述一下
next_permutation 的作用,这里引用一段 OI Wiki 的描述:将当前排列更改为 全排列中的下一个排列。如果当前排列已经是 全排列中的最后一个排列(元素完全从大到小排列),函数返回 false 并将排列更改为 全排列中的第一个排列(元素完全从小到大排列);否则,函数返回 true。
非常的好用,对吧。
详见代码:
跳棋 ( chess)
Description
给定数组 , 表示走到 时的代价,一开始你在 ,若上一次走了 步,第一次走时视 ,前进会走 步,后退则仍然是 步。求到达的最小代价。
Solution
考虑 ,发现可以设状态 为当前在位置 ,这一步走了 步的最小代价,考虑列出转移方程,推导可以发现是以下柿子:
然后我们就可以快乐的进行转移了。
Code
最大利润 (profit)
Description
题面过于复杂,请读者查看原题面。
Solution
题目不会讲,直接放代码。
Code
CPP#include<bits/stdc++.h>
using namespace std;
int n,m,a,b;
double p,q,f[40];
int main(){
cin>>m>>n>>a>>b>>p>>q;
if(a>b) f[m]=a;
else f[m]=b;
p=1-p;
q=1-q;
for(int i=m-1;i>=1;i--){
if(a-b+f[i+1]*(p-q)>0) f[i]=a+f[i+1]*p;
else f[i]=b+f[i+1]*q;
}
printf("%.5lf",f[1]*n);
}
制作唱片(cd)
Descripiton
有 首歌,第 首歌长度为 ,你要选出最多的歌曲,可以分成 组,每组中的歌总长度不能超过 ,且要按顺序选,(比如第一组是 和 ,第二组就只能从 开始选),求最多能选几个。
Solution
我们先来思考如果确定了选哪几首歌,如何判断是否合法,其实因为他要按顺序选,所以只需要从前往后扫一遍,每当总长度大于 时,就分下一组。
之后加上一个二进制枚举就好了。
Code
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...