洛谷 1108 低价购买

2023-11-09 22:49
文章标签 购买 洛谷 低价 1108

本文主要是介绍洛谷 1108 低价购买,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://www.luogu.org/problem/show?pid=1108#
第一问就是裸的最长下降子序列
第二问比较难,看了题解想了好久才明白,可以加一个t[i]数组表示1到i取最长下降子序列的方案数,显然如果f[i]==1则t[i]=1,然后j从1到i-1循环,f[i]==f[j]+1&&a[i]< a[j]时说明可以从1到j的最长子序列后加一个a[i]即加上t[j]个方案数,这里要去除“看起来一样”的方案,当f[i]==f[j]&&a[i]==a[j]时,f[j]即重复的,直接t[j]=0。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int f[5010],a[5010],t[5010];
int n,ans1,ans2;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);f[i]=1;}for(int i=1;i<=n;i++){for(int j=1;j<=i-1;j++){if(a[i]<a[j])f[i]=max(f[i],f[j]+1);}if(f[i]==1)t[i]=1;for(int j=1;j<=i-1;j++){if(f[i]==f[j]+1&&a[i]<a[j])t[i]+=t[j];if(f[i]==f[j]&&a[i]==a[j])t[j]=0;}}for(int i=1;i<=n;i++)ans1=max(f[i],ans1);for(int i=1;i<=n;i++)if(f[i]==ans1)ans2+=t[i];printf("%d %d",ans1,ans2);return 0;
}

这篇关于洛谷 1108 低价购买的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/378915

相关文章

国内云服务购买汇总

大厂 阿里云腾讯云华为云天翼云移动云AWS百度云火山引擎金山云京东云有道智云UCloud青云七牛云又拍云LeanCloud 聊天 融云环信 AI算力 AutoDL无问芯穹 其它领域 极光推送有赞云DaoCloudmemfire cloudAuthing

洛谷 P10584 [蓝桥杯 2024 国 A] 数学题(整除分块+杜教筛)

题目 思路来源 登录 - Luogu Spilopelia 题解 参考了两篇洛谷题解,第一篇能得出这个式子,第二篇有比较严格的复杂度分析 结合去年蓝桥杯洛谷P9238,基本就能得出这题的正确做法 代码 #include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<map>#include<uno

洛谷P8502题解

[problem] \color{blue}{\texttt{[problem]}} [problem] [Solution] \color{blue}{\texttt{[Solution]}} [Solution] 这题最恶心的地方是卡空间。 我们先考虑不卡空间时怎么做。 直接并不好做,我们考虑正难则反,即利用容斥原理。答案应为从 a a a 没有任何限制经过 m m m 条

洛谷:P1085 [NOIP2004 普及组] 不高兴的津津

1. 题目链接 https://www.luogu.com.cn/problem/P1085 P1085 [NOIP2004 普及组] 不高兴的津津 2. 题目描述 题目描述:津津每天要上课还要上辅导班,每天学习超过8小时就不开心,帮忙检查下津津的下周日程安排,然后告诉我她哪天不高兴 输入:7行数据,每行2个小于10的非负整数,分别代表在学校的时间和辅导班的时间 输出:哪天最不高兴,如果有

【洛谷P3366】【模板】最小生成树 解题报告

洛谷P3366 -【模板】最小生成树 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出 orz。 输入格式 第一行包含两个整数 N , M N,M N,M,表示该图共有 N N N 个结点和 M M M 条无向边。 接下来 M M M 行每行包含三个整数 X i , Y i , Z i X_i,Y_i,Z_i Xi​,Yi​,Zi​,表示有一条长度为 Z

洛谷:P5714 【深基3.例7】肥胖问题

1. 题目链接 https://www.luogu.com.cn/problem/P5714 P5714 【深基3.例7】肥胖问题 2. 题目描述 题目描述:BMI计算:m / (h * h),m是体重(kg),h是身高(m) 小于18.5:体重国轻,Underweight 小于等于18.5且小于24:正常,Normal 大于等于24:肥胖,不仅要输出BMI值,换行,输出Overweigh

利用网站资讯监控工具实时监控炒股大赛选手购买股票

这次教大家利用《网站资讯监控工具》实时监控网易炒股大赛选手购买股票详情。 先给大家看看使用的软件以及要监控的界面: 我们需要监控股票持仓区域的变化,然后让软件报警,而浮动盈亏,盈亏比例这些会实时变化,而我们又不用知道这些变化,所以,我们先要设置软件自动忽略数字变化。 首先先打开软件上方的设置选项,选择数据采集方案。 因为股票持仓区域为表格,所

1108. IP 地址无效化

给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。 示例 1: 输入:address = "1.1.1.1"输出:"1[.]1[.]1[.]1" 示例 2: 输入:address = "255.100.50.0"输出:"255[.]100[.]50[.]0" 提示:

洛谷 P1141 01迷宫 (dfs解决)

题目描述 有一个仅由数字 0 与 1 组成的 n×n 格迷宫。若你位于一格 0 上,那么你可以移动到相邻 4 格中的某一格 1 上,同样若你位于一格 1 上,那么你可以移动到相邻 4 格中的某一格 0 上。 你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身)。 输入格式 第一行为两个正整数 𝑛,𝑚。 下面 𝑛 行,每行 𝑛 个字符,字符只可能是 0 或者

【洛谷P3374 P3368】树状数组

提示 本文只记录模板,不做详细解释 P3374 树状数组1 原题链接 #include <iostream>#define lowbit(x) x&(-x)#define N 5*(int)1e5+1using namespace std;int n,m,num[N];long long tree[N];void add(int idx,int val){while(idx<=