nflsoj 选数1 2 3
5711 取数-1
状态表示:1维
集合:前 \(i\) 个数里面所有的选法和
属性:所有的选法和的最大值
状态计算:选或不选
选:\(f(i-1)+a_i\) 不选:\(f(i-1)\)
#include <iostream>
using namespace std;
const int N = 55;
int a[N],f[N];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
f[1]=a[1];
for(int i=2;i<=n;i++)
f[i]=max(f[i-2]+a[i],f[i-1]);
cout<<f[n];
return 0;
}
5712 取数-2
状态表示:1维
集合:前 \(i\) 个数里面所有的选法和
属性:所有的选法和的最大值
状态计算:连续选2个或不选
连续选两个:\(f(i-3)+a_{i-1}+a_i\) (注意要隔一个,不然就连起来了) 不选:\(f(i-1)\)
记得开 long long,因为 \(10^5×10^5\) 爆掉了(估算,实际上没有这么多,但是超过int的取值范围了)
#include <iostream>
using namespace std;
const int N = 1000010;
typedef long long LL;
int a[N];
LL f[N];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
f[2]=a[1]+a[2];
for(int i=3;i<=n;i++)
f[i]=max(f[i-1],f[i-3]+a[i-1]+a[i]);
cout<<f[n];
return 0;
}
5713 取数-3
状态表示:1维
集合:前 \(i\) 个数里面所有的选法和
属性:所有的选法和的最大值
状态计算:不选,选1个,连续选2个
不选:\(f(i-1)\) 选1个:\(f(i-1)+a_i\) 选2个:\(f(i-3)+a_{i-1}+a_i\) (注意隔一个)
#include <iostream>
using namespace std;
typedef long long LL;
const int N = 10005;
LL f[N];
LL a[N];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
f[1]=a[1];
for(int i=2;i<=n;i++)
f[i]=max(f[i-1],max(f[i-3]+a[i-1]+a[i],f[i-2]+a[i]));
cout<<f[n];
return 0;
}
nflsoj 选数1 2 3的更多相关文章
- 【BZOJ-2732】集合选数 状压DP (思路题)
2734: [HNOI2012]集合选数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1070 Solved: 623[Submit][Statu ...
- CODE VS1008选数
#include<cstdlib> #include<cstdio> #include<iostream> #include<cmath> #inclu ...
- BZOJ 3930: [CQOI2015]选数 递推
3930: [CQOI2015]选数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pro ...
- bzoj 2734: [HNOI2012]集合选数 状压DP
2734: [HNOI2012]集合选数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 560 Solved: 321[Submit][Status ...
- BZOJ3930: [CQOI2015]选数
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3930 容斥原理. 令l=(L-1)/k,r=R/k,这样找k的倍数就相当于找1的倍数. 设F[ ...
- 【BZOJ3930】选数(莫比乌斯反演,杜教筛)
[BZOJ3930]选数(莫比乌斯反演,杜教筛) 题面 给定\(n,K,L,R\) 问从\(L-R\)中选出\(n\)个数,使得他们\(gcd=K\)的方案数 题解 这样想,既然\(gcd=K\),首 ...
- 【BZOJ2734】【HNOI2012】集合选数(状态压缩,动态规划)
[BZOJ2734][HNOI2012]集合选数(状态压缩,动态规划) 题面 Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所 ...
- bzoj3930[CQOI2015]选数 容斥原理
3930: [CQOI2015]选数 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1383 Solved: 669[Submit][Status] ...
- BZOJ_2734_[HNOI2012]集合选数_构造+状压DP
BZOJ_2734_[HNOI2012]集合选数_构造+状压DP 题意:<集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x ...
- 【BZOJ3930】选数
[BZOJ3930]选数 Description 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选 ...
随机推荐
- 文心一言 VS chatgpt (11)-- 算法导论2.3 7题 3.1 4~5题
四.2 ^ (n+1)=O(2 ^ n)成立吗? 2^(2n)=O(2 ^ n)成立吗? 文心一言: chatgpt: 第一个式子不成立,第二个式子成立. 2 ^ (n+1) = O(2 ^ n) 该 ...
- 2022-12-12:有n个城市,城市从0到n-1进行编号。小美最初住在k号城市中 在接下来的m天里,小美每天会收到一个任务 她可以选择完成当天的任务或者放弃该任务 第i天的任务需要在ci号城市完成,
2022-12-12:有n个城市,城市从0到n-1进行编号.小美最初住在k号城市中 在接下来的m天里,小美每天会收到一个任务 她可以选择完成当天的任务或者放弃该任务 第i天的任务需要在ci号城市完成, ...
- 函数strncpy和memcpy的区别
1定义 1.1 memcpy void *memcpy(void *destin, void *source, unsigned n); 参数 *destin ---- 需要粘贴的新数据(地址) *s ...
- Matplotlib.pyplot.plot 绘图
Matplotlib.pyplot 创建图形.在图形中创建创建一个绘图区域.在绘图区域中你那个绘制一些线.在图形中添加标签之类 画二维平面图 x = np.arange(0, 10, 2) y1 = ...
- Java程序设计复习提纲(上:入门语法)
目录 上: 基本语法与编译运行 数据类型和关键字 常用语法 数组与字符串 异常处理 中: 面向对象和类 下: 图形界面 基本语法与编译运行 java没有指针没有全局变量 Java源代码文件的后缀名是& ...
- 记一次 .NET 某汽贸店 CPU 爆高分析
一:背景 1. 讲故事 上周有位朋友在 github 上向我求助,说线程都被卡住了,让我帮忙看下,截图如下: 时隔两年 终于有人在上面提 Issue 了,看样子这块以后可以作为求助专区来使用,既然来求 ...
- 6.4. HttpClient
1. 什么是HttpClient? HttpClient是Java 11中引入的一个新特性,用于支持同步和异步发送HTTP请求以及处理HTTP响应.它提供了简单易用的API,使得发送HTTP请求变得非 ...
- Java(break、continue、label)
1.break break在任何循环语句的主体部分,均可用break控制循环的流程.break用于强行退出循环,不执行循环中剩余的语句.(break语句也在switch语句中使用) 例如:循环输出10 ...
- 从源码级深入剖析Tomcat类加载原理
众所周知,Java中默认的类加载器是以父子关系存在的,实现了双亲委派机制进行类的加载,在前文中,我们提到了,双亲委派机制的设计是为了保证类的唯一性,这意味着在同一个JVM中是不能加载相同类库的不同版本 ...
- 【C++ Primer】第二章(2 ~ 6节)
变量 变量提供一个具名的.可供程序操作的存储空间. C++中变量和对象一般可以互换使用. 变量定义(define) 定义形式:类型说明符(type specifier) + 一个或多个变量名组成的列表 ...