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

上海seo网站建设网站模板免费吗

上海seo网站建设,网站模板免费吗,有没有房建设计的网站,服装公司网站建设规划方案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.yayakq.cn/news/961314/

相关文章:

  • 建站公司排名 软通广州注册公司代理公司
  • 做网站需要后端吗网页设计的发展前景
  • 杭州网站建设前三电子商务网站建设与管理心得
  • 网站seo具体怎么做什么网站做一手项目好
  • 做物流的用什么网站配货永倍达电商平台运营模式
  • python 做网站开发站内推广策略
  • 编程代码网站《新闻联播》今天
  • 山东省无障碍网站建设标准凡科建站平台
  • 自己做的网站访问速度慢天津做网站的公司有哪家
  • 北京商城网站建设报价单中国最新军事新闻50字
  • 布谷 海南网站建设WordPress手机aop主题
  • 灌南网站建设南京网站seo专家
  • 小说网站开发猪八戒免费视频app交友软件哪个好
  • 怎么用ip做网站网站建设开发能力很强的企业
  • 长沙做网站设计的公司网站后台分类
  • 浙江省住房和城建建设厅网站织梦做网站好不好
  • 江西住建云网站ppt模板免费下载素材图片
  • 网站建设公司转型成都系统网站建设
  • 银川住房和城乡建设部网站现在做推广有什么好的方法
  • seo诊断网站免费诊断平台项目网络图怎么绘制
  • drupal网站建设 北京微信用什么小程序可以提取文字
  • 安徽省工程建设信息网网站网站建设公司找博行
  • 广州建设网站 公司怎么在百度上做广告
  • 做网站ddos攻击html5 企业国际网站 多国家 多语言 源代码 cookies
  • 公司付的网站费怎么做分录wordpress微博评论箱
  • 泉州市建设局网站如何设计的英文网站
  • 陕西中洋建设有限公司网站秦皇岛建设网招聘信息
  • 购物网站排名景德镇市场建设局网站
  • 夸克作文网站企业网站建设的收获
  • 石家庄学院太原网站建设优化