首页 > 其他分享 >SMU Summer 2024 div2 3rd

SMU Summer 2024 div2 3rd

时间:2024-07-28 19:53:11浏览次数:15  
标签:Summer 背包 int SMU long 2024 include dp mod

文章目录


The Third Week

战略上藐视敌人,战术上重视敌人 ———— 毛泽东主席

一、前言

周六打了场cf,只过了俩题而且比较慢,给我的id上个颜色怎么这么费事呢。链接: link
周一队内训练赛,ac俩题速度还行,但是有不少人ac四题,dfs和dp的应用都没有想到,后来都补出来了。链接: link
周二晚上有一场cf,没打,周三早上打的,div2 ac俩题。还没补题。
周三下午河南萌新联赛,签到题特别签到,算法题特别算法,打得不是特别好,速度还行。补题也非常费劲,算法补的我眼花缭乱了已经。链接: link
周五早上队内训练赛,打的非常不好,很多思维题的思路都需要很长时间才能想出来,更尴尬的是在结束后几秒a了一道题,这要是在赛场上得气死,但是思维题也不知道该怎么才能快点想出来。链接: link
周六早上队内训练赛,不想说了已经。补题了还没写题解。


二、算法

1.KMP算法

adbq学了但是不会用,等过俩天再来补这个算法

2.线性DP

问题的最优解包含着它的子问题的最优解。即不管前面的策略如何,此后的策略必须是基于当前状态(由上一次决策产生)的最优决策。(异或,除余都不适用常规动态规划)

  1. 结合原问题和子问题确定状态:
    (1)描述位置的:前(后)i单位,第i到第j单位,坐标为(i,j)第i个之前(后)且必须取第i个等
    (2)描述数量的:取i个,不超过i个,至少i个等
    (3)描述对后有影响的:状态压缩的,一些特殊的性质
  2. 确定转移方程:
    (1)检查参数是否足够
    (2)分情况:最后一次操作的方式,取不取,怎么样取
    (3)初始边界是什么
    (4)注意无后效性。(比如说,求A求要求B,求B就要求C,求C就要求A,这就不符合无后效性。)
  3. 需不需要优化
  4. 确定编程实现方式
    (1)递推
    (2)记忆化搜索

<1>(最长上升子序列 II)

题解:
相比较I,II的数据增大了100倍,所以无法直接采用o(n * n)的算法,而是用了一种o(n * log(n))的算法,贪心➕二分。
数组q[i]储存长度为i的序列的最小的结尾元素,最终输出q的长度即可。
代码:

#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<cmath>
#include<queue>
#include<utility>

using namespace std;
#define int long long
const int N = 1e5+10;
int n;
int a[N],q[N];

signed main() {
   cin >> n;
   for (int i = 1; i <= n; i++) {
       cin >> a[i];
   }

   int res = 0;
   q[++res] = a[1];
   //可以简单看出q数组是递增的

   for (int i = 2; i <= n; i++) {
       if(a[i] > q[res])q[++res] = a[i];
       //如果比末尾值大,继续加入即可
       else {
       int l = 1,r = res;
       while(l < r) {
       //二分
           int mid = (l+r)/2;
           if(q[mid] < a[i])l = mid+1;
           else r = mid;
       }
       //找出第一个大于等于a[i]的值
       //把那个位置的q[r]变成a[i]
       q[r] = a[i];}
   }
   cout << res << endl;

   return 0;
}

3.背包DP

  1. 01背包
    给定n件重量为w,价值为v的物品,问一个可承载m重量的背包最多能获得多少价值,是每件东西的取存问题,所以是01背包
   for (int i = 1; i <= n; i++) {
       for (int j = 1; j <= m; j++) {
           if(j < w[i]) dp[i][j] = dp[i-1][j]; //放不下这件物品
           else dp[i][j] = max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
           //选取放和不放之间的较优态
       }
   }
  1. 完全背包
    还是n类重量为w,价值为v的物品,这次每个物品可以无限次的取
    for (int i = 1; i <= n; i++) {
      for (int j = 1; j <= m; j++) {
          dp[i][j] = dp[i-1][j];
          //考虑一下要不要放啦
          if(j >= w[i])dp[i][j] = max(dp[i][j],dp[i][j-w[i]]+v[i]);
          //直接在当前的第i个物品处考虑需不需要往下继续放
      }
  }
  1. 多重背包
    每个物品有个数限制
    
    
    以上,都是在这个视频中学习所得,致谢

    标签:
    Summer,背包,int,SMU,long,2024,include,dp,mod
    From: https://blog.csdn.net/FS_tar/article/details/140610582

相关文章

  • 2024暑假集训测试14
    前言比赛链接。最可惜的一点还是本来T3暴力能拿\(20\),优化成\(15\)了,不然就rk2了,晚上可能又有泡面吃了。不过因为T2、T4两道水题,剩下两道不太可做(至少对于我是这样的),这两题不挂分的打的貌似都不错。T3没学过莫反输麻了。T1黑暗型高松灯本来应该是T4,学长特意......
  • 2024/07/28 每日一题
    LeetCode699掉落的方块方法1:暴力classSolution:deffallingSquares(self,positions:List[List[int]])->List[int]:n=len(positions);ans=[0]*n#记录每个方块落下后的高度fori,(left0,widen0)inenumerate(positions):......
  • 大创项目个人周报(2024.7.22—2024.7.28)
    本周个人情况汇报我本周主要学习了安卓开发的内容,根据《第一行代码Android》开展了学习。一、分析自己的第一个Android程序通过看书,我对项目的各个文件的功能有了大致了解,除app目录外,大多数文件和目录是自动生成的,app目录是今后开发工作主要涉及的部分。app的结构如下。......
  • 2024牛客多校第四场F.Good Tree 挑战全网最详解
    好吧标题党了一回,但我相信有不少人被出题人的那句“手玩一下就知道了”无语住了像我这种憨憨一旦想偏了就救不回来了,于是困惑了好久,在雨巨的指导下彻底搞懂(此处大声谢谢雨巨,又有实力又会讲题又认真答疑每一个问题,呜呜呜我永远的姐)题意简单来说就是定义f(i)为树上i点到其他所有......
  • Adobe Photoshop 2024 v25.11 (macOS, Windows) - 照片和设计软件
    AdobePhotoshop2024v25.11(macOS,Windows)-照片和设计软件Acrobat、AfterEffects、Animate、Audition、Bridge、CharacterAnimator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、LightroomClassic、MediaEncoder、Photoshop、PremierePro、AdobeXD......
  • Adobe Illustrator 2024 v28.6 (macOS, Windows) - 矢量绘图
    AdobeIllustrator2024v28.6(macOS,Windows)-矢量绘图Acrobat、AfterEffects、Animate、Audition、Bridge、CharacterAnimator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、LightroomClassic、MediaEncoder、Photoshop、PremierePro、AdobeXD什么是......
  • 在Windows下安装设置IDEA 2024.1.4
    文章目录下载IDEA安装IDEA设置IDEA汉化IDEA(可选)创建一个Java项目激活IDEA下载IDEAIDEA下载直链安装IDEA双击打开下载好的安装包,点击下一步更改你的安装目录,完成后下一步根据自己的需求来勾选安装选项,完成后下一步选择开始菜单目录,这里默认安装等待进度......
  • AI论文阅读笔记 | Timer: Generative Pre-trained Transformers Are Large Time Serie
    一、基本信息题目:Timer:GenerativePre-trainedTransformersAreLargeTimeSeriesModels会议:ICML2024原文:https://arxiv.org/abs/2402.02368源码:​​​​​​​https://github.com/thuml/Timer二、基本内容 1、解决什么问题虽然深度学习对时间序列的分析做出了显著......
  • 开车从襄阳到邓州多远,费用多少钱以及详细线路(返程) 时间:2024-07-27 23:40:58
    开车从襄阳到邓州多远,费用多少钱以及详细线路(返程)时间:2024-07-2723:40:58  编辑:无敌电动网自驾开车从襄阳到邓州的距离大约84.7公里,总耗时约1.6小时,路桥费大约需要30元,如果您开的是汽油车,油费大概51元,如果您开的是新能源车,电费大概在8元~ 17元之间,电费高低取决于您充电......
  • 【教学类-70-01】20240728一个茶壶两个茶杯(果茶)
    ‘背景需求:用通义万相下载简笔画茶壶、茶杯茶杯,简单笔画,卡通,黑白,未着色,幼儿插图,线条画,没有背景,没有颜色,黑白漫画线条艺术:,空背景,粗轮廓,清晰的线条,矢量线。简单,大,茶壶,简单笔画,卡通,黑白,未着色,幼儿插图,线条画,没有背景,没有颜色,黑白漫画线条艺术:,空背景,粗轮廓,清晰的线条,矢量......