当前位置: 首页 > news >正文

五屏网站建设哪家好苏州百度推广开户

五屏网站建设哪家好,苏州百度推广开户,html静态网站模板简单单页,杭州建设工程协会C. Maximum Set 思路: 我们求最大数组,显然是L一直乘2,直到再乘2就越过区间位置。我们说过,再乘一个2就不行,那么我们除一个2,换句话说,就是再乘一个4就不行了。发现,我们可能有机会乘一个3&a…

C. Maximum Set

思路:

  1. 我们求最大数组,显然是L一直乘2,直到再乘2就越过区间位置。
  2. 我们说过,再乘一个2就不行,那么我们除一个2,换句话说,就是再乘一个4就不行了。
  3. 发现,我们可能有机会乘一个3,2<3<4
  4. 而且,我们至多乘一个3。(除去一个2,必须乘一个数,该数小于4并且大于2,才能使得除去2后再乘一个数,保证数组大小不变)
  5. 所以我们首先求出只由2的倍数组成的最大size,然后再求出插入一个3的情况(而对于每一组,3是可以放在除了第一个数的其他位置上的,所以每一组都有size种情况)
#include <bits/stdc++.h>
using namespace std;
#define ll     long long
const int mod = 998244353;int main()
{std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int t;cin >> t;while (t--){int l, r;cin >> l >> r;int k = 0;while ((1 << k)*l <= r)++k; //k为可以乘的2的个数--k;ll ans = (r >> k) - l + 1; //当前ans为可以只乘2获得k+1个数的数if (k > 0){int cnt = (r >> (k - 1)) / 3 - l + 1;//少乘一个2,多乘一个3cnt = max(0, cnt); //cnt可能小于0ans = (ans + cnt * k % mod) % mod;}cout << k + 1 << ' ' << ans << endl;}return 0;
}

D. Maximum Subarray

思路:

  1. 先不考虑修改值x的影响
    1. 求n个数字的最大连续子串和,因为是连续的。我们可以用dp[i]表示包含i的最大连续子串,那么结果就是max(dp[i])。
    2. 如果我们已经知道dp[i-1],显然dp[i]=max( 0,dp[i-1] )  +a[i]。(dp[i-1]不一定是正数,如果是,我取你这个连续段,不是就不要)
  2. 考虑x后,题目要求给整个数组加m个x,减去n-m个x。
    1. 我们每次更新时,都要考虑当前数组加了几个x,如果已经加了m个,那我们这次就不是a[i]加x而是减x了。如果小于m个,那就还是a[i]+x。
    2. 所以我们设dp[i][j]表示包含第i个数字的前i个数字的最大连续子串和(其中给前i个数字加了且只加了jx。那么最大答案就是max(dp[i][j])
    3. 我们由2.1得出,求dp[i][j]是需要分类讨论的:
      1. 对于dp[i-1][j](即j<i时)我们规定了只加j个x,那么我们更新时,a[i]要减x。所以dp[i][j]=max(0,dp[i-1][j])+a[i]-x(注意,我可以不要dp[i-1][j]这段子串和,但是我前i-1个还是有j个数字加了x)
      2. 如果继承dp[i-1][j-1],那么我们a[i]+x,  dp[i][j]=max( dp[i][j],   max(0, dp[i-1][j-1])   +a[i] + x)
  3. 注意,题目要求必须加m个x,所以我们j不是都从0开始的,假如你dp[i][j]更新,那么后面还有max(0,m-j)个数字需要加上x,那么我们必须保证剩下的n-i个数字够加,即j+n-i>=m,所以j>=max(0,m-n+i)&&j<=m&&j<=i
#include <bits/stdc++.h>
using namespace std;
#define ll     long long
const int N = 2e5 + 10;ll dp[N][25];
int a[N];int main()
{std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int t;cin >> t;while (t--){int n, m, x;cin >> n >> m >> x;for (int i = 1; i <= n; ++i)cin >> a[i];for (int i = 0; i <= n; ++i)for (int j = 0; j <= m; ++j)dp[i][j] = 0;ll ans = 0;for (int i = 1; i <= n; ++i)for (int j = max(0, m - n + i); j <= m && j <= i; ++j){if (j < i)dp[i][j] = max(0ll, dp[i - 1][j]) + a[i] - x;//j<i就有此更新,j==i则不用,因为前面最多更新j-1个if (j)dp[i][j] = max(dp[i][j], max(0ll, dp[i - 1][j - 1])+ a[i] + x);ans = max(ans, dp[i][j]);//答案就是max(dp[i][j]),不是dp[i][m],不要求m个都在我的最大连续子串和范围内更新}cout << ans << endl;}return 0;
}

http://www.mnyf.cn/news/48898.html

相关文章:

  • 国外网站前台模板windows7优化大师下载
  • 2021年中央经济工作会议优化方法
  • 国家数据统一共享开放平台太原seo优化公司
  • 做受网站软文如何推广
  • 主机做网站服务器怎么设置百度地图导航2021最新版
  • 网站维护广州建网站网站建设维护
  • 做代练的网站无锡百度竞价推广
  • 上海城乡建设厅网站2024年3月份病毒会爆发吗
  • dede如何制作手机网站企业网站推广的方法有
  • 强化网站建设和管理公司做网站需要多少钱
  • 惠州品牌网站建设价格青岛seo服务哪家好
  • 专业做国际网站的公司快速seo软件
  • 手机端怎样做网站建设郑州网站优化公司
  • 宁夏回族自治区住房和城乡建设厅网站惠州seo推广优化
  • 2003 iis网站发布网站企业应该如何进行网站推广
  • wordpress自定义文章流程百度seo价格
  • 做网站设计需要办理icpseo一键优化
  • 东莞服务seo优化排名服务
  • wordpress商品属性选择百度seo不正当竞争秒收
  • 建设网站需要多少钱济南兴田德润厉害吗网站访问量
  • 动漫设计与制作主修课程有哪些百度seo推广方案
  • 手机网页打不开是什么原因湛江seo
  • 厦门建设官网seo网站编辑优化招聘
  • 手机网站单页怎么做海口seo计费
  • 安陆市建设局网站临沂seo公司稳健火星
  • 做电影资源网站服务器怎么选网络精准营销推广
  • 有没有交流做服装的网站网站制作费用一览表
  • 如何做交互式网站成人职业技术培训学校
  • 邵阳优秀网站建设百度公司在哪里
  • 怎么把网站建设推广出去如何优化网络连接