ans
  • 2024-07-0201字典树和可持久化01字典树
    01字典树01字典树是一种只有0和1两种边的字典树。可以解决查询第\(k\)小,查询\(x\)是第几小等问题。查询第\(k\)小可以把输入的数转成等长二进制,然后插入01字典树。比如将\([0,0,1,3,3]\)插入字典树:这里红色数字表示以该段为前缀的数的个数,黑色表示对应的数。假设我
  • 2024-07-02(nice!!!)LeetCode 3164. 优质数对的总数 II(数组、哈希表)
    3164.优质数对的总数II思路:先找出可以被k整除的nums[i].方法一:统计因子。1、找出数组nums1每个元素的因子,用哈希表来记录每个因子出现的次数。然后再遍历数组nums2进行累加即可。classSolution{public:constintN=1e6+10;longlongnumberOfPairs(vec
  • 2024-07-02C. Basil's Garden
    原题链接题解1.最后一朵花,变成零需要\(h_n\)阵风2.倒数第二朵花,如果高度大于\(h_n\),则需要\(h_{n-1}\)阵风,否则需要\(h_n+1\)阵风3.倒数第三朵花,如果高度小于等于\(h_{n-1}\),则需要\(t_{n-1}+1\)阵风;否则,如果高度降到\(h_{n-1}\)时,第\(n-1\)朵花还没有开始下降
  • 2024-07-01Atcoder ABC 360 全题解
    致歉对不起,我不应该在全题解的编写上咕咕咕两个月,导致流量大量流失。我知错了,下次还犯。AB无C考虑一个箱子里的所有球,我们需要把这些球放进互不相同的一些箱子里。然而我们可以留一个球在箱子里,显然留重量最大的最好,所以答案就是$\sum_{i=1}^{N}W_i$减去每个箱子里的最
  • 2024-07-01数据结构 —— Trie 树
    一个笔记需要一张头图:Trie树是一种维护(广义)字符串(我们认为广义字符串是一切可以被线性描述的类型,例如,我们认为整数(无论是哪种进制下)是一种广义字符串;有理数也是一种广义字符串(使用无限循环小数方式表述,可能需要一些特殊处理。))的数据结构,其特征为适于处理前缀类型或寻找类型(i.e.
  • 2024-07-01LeetCode 2024/7 每日一题 合集
    2024/7/12065.最大化一张图中的路径价值分析注意观察到至多走十条边,因此直接爆搜即可。代码实现classSolution{public:intmaximalPathQuality(vector<int>&values,vector<vector<int>>&edges,intmaxTime){intn=size(values),m=size(edges);
  • 2024-06-30Public Round #13 题解
    旋转序列来源:IzbornePripreme2022(CroatianIOI/CEOITeamSelection)Day1,ProblemBhttps://qoj.ac/contest/956/problem/4326两个串之间\(1\)匹配的次数总和为\(k\timesl\),并且共有\(n\)次匹配。于是答案的上界为\(k\timesl\)个球放进\(n\)个盒子,最小化
  • 2024-06-30QOJ 1086 Bank Security Unification
    令题目给定的序列为\(a_{1\simn}\)。考虑到一个比较基础的DP是设\(f_i\)为以\(a_i\)结尾的序列的最大值。然后转移就是\(f_i=\max\{f_j+(a_i\&a_j)\}\)。考虑排除掉一些不优的状态。令\(a_j\)的最高位为\(x\),且\(k\)满足\(a_k\)最高位也为\(x\)且\(k
  • 2024-06-30第三次BLOG
    转眼已经到了学期末,面向对象课程也迎来结课,这是oop第三次作业的大总结,题目集的难度都是由浅入深,循序渐进的,越往后写越是有点力不从心的感觉。但是这门课是我们接触软件的开始,并不是结束,这门课结束了不代表学习就要结束,所以在结课之后,对于最后两次题目集做一次总结,以便巩固自己所学
  • 2024-06-30第二章 MATLAB入门知识 第三节
    常见的特殊变量:特殊变量描述ans系统默认的用于保存运算结果的变量名pi圆周率π>>pi ans=3.1426inf/-inf无穷大和负无穷大,注意1/0=inf正常0不能做分母但是MATLAB可以NaN不定值或缺失值。例如计算0/0或0*Inf会返回NaNi和j负数中的虚数单位,例如3+4i和3
  • 2024-06-30hash
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineall(a)(a).begin(),(a).end()typedef__int128_ti128;typedef__uint128_tu128;constintN=1e5+7;vector<int>c[200];vector<int>d[200];u128h[26][N];u128
  • 2024-06-24Lights
    题目信息题目链接LuoguCF1907G思路分析如果我们把每一个关系都转化为一条无向边,则\(n\)个点会有\(n\)条边,并且每一个点的度数至少是\(1\),所以是一颗基环树森林。我们分别看看每一个数。一棵树一定会有一个环,首先环外树的决策方案是一定的,一定是将每一个权值为\(1\)的
  • 2024-06-24LeetCode11. 盛最多水的容器题解
    LeetCode11.盛最多水的容器题解题目链接:https://leetcode.cn/problems/container-with-most-water示例思路暴力解法定住一个柱子不动,然后用其他柱子与其围住面积,取最大值。代码如下:publicintmaxArea1(int[]height){intn=height.length;intans=0;
  • 2024-06-24CTH: 谁帮我切开这个蛋糕???
    $\quad$看到CTH立马就开始做了好吧,很适合当做入门题。$\quad$首先定义\(f[i]\)表示进行到第\(i\)位时的答案数,\(bit\)数组表示\(01\)序列。那么当\(bit[i]\)为\(1\)时,有\[f[i]=\sum_{j=i+1}^{n+1}f[j]\]$\quad$至于为什么循环到\(n+1\),循环到第\(j\)位
  • 2024-06-23ABC359E的有趣解法
    题意:给定一个h序列,对于\(h_i\),找到一个\(j\)满足\(j<i\)且\(h_j>=h_i\),令\(ans_i=h_i*(i-j+1)+ans_j+1\),最后输出ans序列。赛时给了个很魔怔的解法,不知道是不是正解,反正是过了(摊手)我们可以开一个idx数组,将h[i]从小到大排序后将其原下表存入idx数组,这样我们从前
  • 2024-06-23[题解]AT_arc113_c [ARC113C] String Invasion
    题意给定一个字符串\(S\),你可以选择一个\(i(1\leqi\leq|S|)\),如果\(s_i=s_{i+1}\neqs_{i+2}\),就将\(s_{i+2}\)设为\(s_i\)。问:最多能操作几次。思路我们可以用一个后缀和\(s_{i,j}\)维护\(S_i\simS_n\)中与\(j\)不同的数量。然后,我们可以发现一
  • 2024-06-23[题解]AT_agc054_b [AGC054B] Greedy Division
    思路首先不难发现一个规律,当\(sum\)为奇数时不可能有解。定义\(dp_{i,j,k,0/1}\)表示A在前\(i\)个数中选出和为\(j\)的\(k\)个数,且第\(i\)个不选/选的方案数。那么,我们只需要对于第\(i\)个数的状态分类讨论就能得到状态转移方程:不选\(i\),\(dp_{i,j,k,0}=
  • 2024-06-23647. 回文子串(leetcode)
    647.回文子串(leetcode)题目描述给你一个字符串s,请你统计并返回这个字符串中回文子串的数目。回文字符串是正着读和倒过来读一样的字符串。子字符串是字符串中的由连续字符组成的一个序列。示例1输入:s=“abc”输出:3解释:三个回文子串:“a”,“b”,“c”
  • 2024-06-22ABC358
    ABC358E-AlphabetTiles一句话题意:给定\(K\)和\(C_{1\sim26}\),问共有多少个长度为\(1\simK\)的字符串,满足第\(i\)种英文字母的出现次数不大于\(C_i\),不小于\(0\).标签:动态规划,组合数,动态拆分记\(f[i][j]\)表示使用前\(i\)种字母,组成长度为\(j\)的字
  • 2024-06-22C. Theofanis' Nightmare
    cf链接洛谷链接解法一我们观察到每一次的分段会导致后面的分段的Li+1,也就意味着整个式子的答案加上了当前下一位置的后缀和。即我们假设后缀数组为b,如果要在i位置分段,此时ans+=b[i+1];因此我们很容易得出如果i位置的后缀和>0则分段,否则不分段。Ps:如果b[1]<0需要加上b[1]
  • 2024-06-22美丽下标对的数目(Lc2748)——计数
    给你一个下标从 0 开始的整数数组 nums 。如果下标对 i、j 满足 0≤i<j<nums.length ,如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 ,则认为 nums[i] 和 nums[j] 是一组 美丽下标对 。返回 nums 中 美丽下标对 的总数目。对
  • 2024-06-2220240622训练
    文件名是abcd的逆天考试(算术(a)题面:给定一个长度为\(n\)的整数数列\(a_1,\dots,a_n\),求有多少个有序对\((i,j)\)满足\(i<j\wedgea_ia_j<a_i+a_j\)题解:枚举\(j\),有\(a_i(a_j-1)<a_j\),对\(a_j\)分类讨论。当\(a_j>1\),\(a_i<a_j/(a_j-1)\),即\(a_i\le1\)。当\(a_j=1\),\(0
  • 2024-06-22LeetCode 2542. 最大子序列的分数(贪心、小顶堆)
    2542.最大子序列的分数思路:先对nums2按降序排列,然后遍历nums2的最小值,同时在区间[0,i]中选中k个最大的nums1即可。然后找出最大的ansclassSolution{public:typedefpair<int,int>PII;longlongmaxScore(vector<int>&nums1,vector<int>&nums2,intk)
  • 2024-06-22kedaOJ-#P2574. [USACO 21DEC.B] Lonely Photo
    题目[USACO21DEC.B]LonelyPhoto思路include<bits/stdc++.h>usingnamespacestd;defineintlonglongdefineN500010intn,m,i,j,k;intl[N],r[N],ans;chara[N];signedmain(){scanf("%d%s",&n,a+1);for(i=1,k=0;i<=n;++i)
  • 2024-06-22[题解]AT_abc264_e [ABC264E] Blackout 2
    思路一道很经典的题,运用了一种叫「时光倒流」的技巧。「时光倒流」本质上就是将所有删边(或删点)的操作,通过倒序循环求值的方式转化为加边(或加点)。「时光倒流」具体实现通常伴随着并查集出现,维护一个连通块的某种性质。首先,我们需要将所有从始至终没有删过的边加入并查集。在这