首页 > 其他分享 >24noip十连测day6

24noip十连测day6

时间:2024-10-13 21:49:38浏览次数:1  
标签:得分 le 题意 day6 题解 24noip 100 dp 十连测

T1.触不可及

简要题意

给定一个长度为 \(n\) 的序列 \(a\)。你每次可以删除一段长度为 \(2\)的幂的 \(a\)的区间(删除后两边合并)。你可以操作任意多次,但操作的区间长度必须互不相同。操作之后,你希望序列的最大子段和最大。输出该最大子段和。

\(n<1e3,abs(a[i])>=1e6\)

题解

唐氏题,直接区间\(dp\),设\(dp[i][j]\)为\(1-i\)中,删除的状压为\(j\)可以形成的最大答案(注意:不一定要从\(1\)开始或者到\(i\)结束),有:

\[初始化:dp[i][0]=max(0,max(dp[i-1][0]+a[i],a[i])) \]

\[转移:枚举2的次幂k,dp[i][j]=max(dp[i][j],dp[i-(1<<k)][j异或(1<<k)]) \]

用时\(30min\),期望得分\(100\),实际得分\(100\)。

T2.璀璨冒险人

简要题意

有一个三个柱子的汉诺塔,\(n\)个圆盘,给定初始圆盘的位置,求都放在第三根柱子上的最小操作次数。

\(n \le 10^7, 1\le a_i \le 3\)。

题解

《具体数学》题,设\(dp[i][1/2/3]\)为把前\(i\)小的圆盘放到\(1/2/3\)号柱子上的操作次数。

转移,不妨设第\(i+1\)个圆盘在第一个柱子上(其他情况同理),有:

\[dp[i+1][1]=dp[i][1],dp[i+1][2]=dp[i][3]+2^{i-1},dp[i+1][3]=dp[i][2]+2^{i-1} \]

也可以从大到小枚举,先找到第一个不在三号柱子上的圆盘,再递归处理。

用时\(1h20min\),做的时候唐氏了,期望得分\(100\),实际得分\(100\)。

T3.蜃楼

简要题意

给定 \(n\),对每个 \(i=1,2,…,n\),你有\(a_i\)个面值为\(i\)的硬币,问你能用这些硬币凑出多少种金额。

\(n \le 100,0\le a_i \le 10^9\)。

题解

设\(\sum_{i=1}^{n}a_i\times i\)为\(s\),显然每个金额能否凑成的\(01\)串关于\(s/2\)对称。

并且观察到这个东西有周期并且周期不长,题解说是\(2n^3\)的,那么只需要计算\(2n^3\)内的答案即可。

计算使用多重背包二进制分组优化+bitset优化,复杂度\(O(n^4\log n/w)\)。

用时\(2h\),期望得分\(0\),实际得分\(0\)。

T4.我以渺小爱你

简要题意

定义一个\(3-hypergraph\)是一个由三个点构成的集合,\(BC_k\)为\(k\)个两两不同的点\(v_1,v_2,......,v_k\)和两两不同的集合\(e_1,e_2,......,e_k\),满足\(v_i \in e_i \cap e_{i\bmod k+1}\)

有\(n\)个点,构造尽可能多的\(3-hypergraph\),满足没有\(BC_2,BC_3,BC_4\)。

\(n<=1893\),构造得分计算方式较为复杂。

题解

条件等价于把每个集合\({x,y,z}\)拆成三条边\((x,y),(y,z),(z,x)\)后图中不包含四元环。

构造一张特殊的图\(ER_q\),其中的点为\(\bmod q\)意义下的所有不同的三维直线,边为两条直线垂直则连边。

易证\(ER_q\)中点数为\(q^2+q+1\)边数为\(\frac{1}{2}q(q+1)^2\)且没有四元环。

构造方案为\(ER_q\)中的所有三角形。

用时\(40min\),期望得分\(5\),实际得分\(5\)。

标签:得分,le,题意,day6,题解,24noip,100,dp,十连测
From: https://www.cnblogs.com/wangwenhan/p/18463073

相关文章

  • 正睿csp-s 7连测 day6
    day6A.ThoughtfulDreams难度:红输出\(1\simn\)即可。#include<bits/stdc++.h>#definelllonglong#definemxn200010usingnamespacestd;lln;intmain(){cin>>n;for(inti=1;i<=n;i++)cout<<i<<'';......
  • Day6 备战CCF-CSP练习
    Day6题目描述给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。输入格式输入的第一行包含一个字符串\(S\),由大......
  • 10.8 模拟赛(2023 CSP-S 十连测 #5)
    炼石计划10月28日CSP-S十连测#5【补题】-比赛-梦熊联盟(mna.wang)复盘T1秒了。30min。T2题目越短越难。但是链的是经典题目,写了。小样例太水,大样例太大,不方便猜结论。于是先写暴力然后自己造样例。模拟了五六组感觉可以按照lca的深度降序排序,然后能选就选。这......
  • 代码随想录算法训练营第六天|Day6哈希表基础
    242.有效的字母异位词题目链接/文章讲解/视频讲解:https://programmercarl.com/0242.%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D.html思路1.暴力的解法,两层为循环,很明显时间复杂度是O(n^2)。boolisAnagram(char*s,char*t){if(......
  • 【2021提高组十连测day7】a
    【2021提高组十连测day7】a题意:求每个点和其他所有点曼哈顿距离的平方之和。形式化地,求\(\sum_{j=1}^{n}(|x_i-x_j|+|y_i-y_j|)^2(1\lei\len)\)。对于每个点,我们把其他点分成四部分:左上、左下、右上、右下。四个部分可以通过旋转整个坐标系来解决。因此这里讲如何处理左上......
  • 【20zr提高组十连测day10】心
    【20zr提高组十连测day10】心首先不同的操作序列一定在某个时刻使数组内容不同,因此我们只需要统计合法的操作序列数量。一个合法的最终数组形如若干个\(1,M\),而且\(1,M\)之间可能有若干个\(x\),长度为\(n+1\)。造成这个数组的操作序列必须满足所有操作\(1,M\)按顺序排列,......
  • 【20zr提高组十连测day10】信
    【20zr提高组十连测day10】信给定\(n,m\),\(n,m\le10^5\),给定分别长度为\(n-1,m,n,m-1\)的单调不减的序列\(A,B,C,D\),然后形如该图建边:考虑到序列是递增的,对于除最左上角以外的每个点,每个点一定要选和自己相连的一条边才能形成一棵树。那么选择左边或上边一定是更优的,而且......
  • C++ Practical-1 day6
    系列文章目录点击直达——文章总目录文章目录系列文章目录C++Practical-1day6Overview1.abstract_class抽象类1.1.抽象类的特点1.2.示例:抽象类1.3.注意事项2.virtual_function虚函数2.1.示例:动物叫声的多态性2.2.示例:计算图形的面积2.3.注意事项关于作者C+......
  • java_day6_this关键字、构造方法、static关键字、工具类、文档注释
    一、this关键字this代表的是调用该方法的当前对象【谁调用了该方法,this就代表那个对象】this:代表的是调用当前方法的对象this可以使用对象中的成员变量,成员方法,构造方法变量查找规则:就近原则先在方法中查找变量,若找到就使用若方法中没有该变量,去成......
  • day6
    选择排序概述:选择排序是一种简单的排序算法,其基本思想是每次从未排序的部分中选择最小(或最大)的元素,然后放到已排序部分的末尾。步骤:从未排序部分中找到最小的元素。将这个最小的元素与未排序部分的第一个元素交换。将已排序部分扩大一位,未排序部分缩小一位。重复以上步骤......