首页 > 其他分享 >康复训练(一)

康复训练(一)

时间:2024-11-28 22:36:16浏览次数:11  
标签:奇数 线段 个数 偶数 反悔 减券 康复训练

P11268 买东西题

很明显的反悔贪心。

首先对物品按照原价从小到大,满减券也按照 \(w\) 从小到大,这样每个物品能使用的满减券对应一个前缀。

对于任意一件物品,要么花费 \(b_i\) 要么花费 \((a_i-v_x)\)。

如果是前者,对后面没有什么影响。

如果是后者,这件物品使用了一张满减券,有可能之后再用更优,所以需要考虑反悔。

当且仅当 \(a_i-v_x+b_j>b_i+a_j-v_x\) 时,反悔更优。

充分性显然,主要说一下必要性。

由于 \(i\) 能用的满减券 \(j\) 也能用,所以如果 \(i\) 选择换一张券而且更优那还不如让 \(j\) 用,这样不可能出现上诉情况。

所以不等式变为 \(a_j-(a_i-b_i)<b_j\),等价于使用了一张 \((a_i-b_i)\) 的满减券。

实现方面采用大根堆,每次将使用堆顶满减券与优惠价比较,如果用了插入反悔策略即可。

1349C Orac and Game of Life

一道思维题。

任意一个 \(s\ge 2\) 的同色连通块在每一刻的颜色均相同,且每次变为另外一种颜色。

即使是 \(s=1\) 的孤立点,如果其周围有 \(s\ge 2\) 的连通块,下一刻它也会被融入连通块。

所以 \(s=1\) 的孤立点最后一定会被最近的连通块所融入。

BFS 即可。

LOJ 无聊的数对

首先考虑 \([1,n]\) 如何求无聊的数对。

对于 \(x\le y\),假设 \(x\) 和 \(y\) 分别有 \(w_x\) 和 \(w_y\) 个 \(1\),那么异或起来必定会少偶数个 \(1\),所以最后有 \((w_x+w_y-2k)\) 个 \(1\)。

所以当且仅当 \(w_x\) 和 \(w_y\) 奇偶性不同时才有奇数个 \(1\),答案也就是有奇数个 \(1\) 的个数与有偶数个 \(1\) 的个数相乘。

回到问题,这时候不能用暴力求解了,发现个数具有可加性,考虑线段树,但空间不够,需要动态开点。

接着考虑一个线段树区间如何求个数,发现有偶数个 \(1\) 的个数就是长度除以 \(2\)。

证明需要用线段树的性质,如果以 \([0,2^{32}-1]\) 建线段树,那么每个区间都类似于 \([2^a,2^b-1]\)(此时认为左端点时 \(2^0=0\))

所以每个区间会长成这样:\(000\dots0-111\dots 1\) ,令 \(1\) 有 \(sum\) 个,且忽视开头的 \(1\)。

如果 \(sum\) 为奇数,那么任意一个有偶数个 \(1\) 的数取反后对应一个奇数个 \(1\) 的数。

如果 \(sum\) 为偶数,那么忽略第一个便变为奇数情况,加上第一个过后只不过对数变为两倍。

得证。

标签:奇数,线段,个数,偶数,反悔,减券,康复训练
From: https://www.cnblogs.com/HEIMOFA/p/18575371

相关文章

  • AI健身教练-引体向上-俯卧撑计数代码-仰卧起坐姿态估计-康复训练姿态识别-姿态矫正(附
    在AI健身应用中,通过关键点检测技术可以实现对用户动作的精准捕捉和分析,从而进行统计计数和规范性姿态识别。统计计数:比如在做瑜伽、健身操等运动时,系统可以通过对人体关键点(如手部、脚部、关节等)的实时追踪,精确计算用户的动作次数。例如,在做深蹲或俯卧撑时,系统能通过检测髋......
  • 自闭症儿童康复训练后能否顺利迈进小学之门
    在当今社会,自闭症儿童的教育和发展备受关注。经过康复训练的自闭症儿童能否顺利进入小学,成为了众多家长和教育工作者关心的重要问题。自闭症儿童在经过系统的康复训练后,其状况会得到不同程度的改善。但能否上小学,不能简单地一概而论,而需要综合考虑多个方面的因素。康复训练的......
  • Java计算机毕业设计基于Android的自闭症康复训练APP设计与实现(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景自闭症,作为一种复杂的神经发育障碍,影响着全球数百万儿童及其家庭。自闭症患者在社交互动、沟通表达及行为模式上常表现出显著困难。随着移动技术的飞......
  • 【康复训练3】2024.4.7小红书
    这期的题目整体比较简单,相比之前的都简单第一题-塔子哥送粉丝周边简单排序#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=2e5+100;structstr{ intnum; ints;}st[N];boolcmp(stra,strb){ if(a.s!=b.s){ returna.s>b.s......
  • 【康复训练1】2.24.4.13美团春招
    前言写在前面,由于很长一段时间没有敲代码了,上周写了华为的题目,debug半天也没有debug出一道来,属实狠狠的打击到我了,因此特开此专栏,以便开启老年选手康复之路!!!第一题-塔子哥的好子矩阵前3题,手速题水题#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongcon......
  • 代码康复训练
    树状数组区间求和P3374#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=5e5+10;intn,m;structBIT{intlim,tre[N];inlineintlowbit(intx){returnx&(-x);}inlinevoidinsert(intx,intval){for(inti=x;i<=l......
  • 康复训练
    巩固的题单增减序列代码差分,要动脑筋最佳牛围栏代码二分,双指针,小技巧多也要动脑筋......
  • 最短路康复训练
    最短路金字塔比平常的最短路多加了个参数。这里的路径长度计算与其他题不同,它是一条路径的长度+这条路径中最长的那条路的长度用平常的最短路是行不通的,不能设置平常的vis数组,即(点出队列就不再更新)这个思路是错的,因为加上路径上的路的max可能就不一样了。代码voiddijkstr......
  • 康复训练の树形DP
    所有代码的开头头文件,宏定义和命名空间如下#include<bits/stdc++.h>#defineTptemplate<typenameTy>#defineTstemplate<typenameTy,typename...Ar>#definelllonglong#defineCIconstint#defineRIint#defineWwhile#definegcgetchar#definemax(x,y)......
  • 【每日随笔】手指训练 ( 产品需求探索、技术无关 | 手指训练作用 | 哪些人需要手指训
    文章目录​​一、手指训练作用​​​​二、哪些人需要手指训练​​​​三、手指操​​​​四、手指康复训练器材​​产品需求探索,研究下手指训练的市场,前景,是否可......