普转提Day2
T1
给定一个区间,求这个区间中只有一个数字与其他数组不相同的数的个数。
给出的区间范围较大,但是要求的数比较少。所以我的想法是这样的:因为这些数只有一个数字和每个数字都相同的数不同,所以考虑将所有数字都相同的数处理出来(不算0总共有126个)。那么每次枚举这些数,将其中的一个数字改掉,再去判断更改后的数字是否在区间内,是的话就累计一下答案,最后再单独处理*00000...的情况。但是我在预处理数的时候最后一组忘记处理出来了,而且在开头数字没有处理好,得分80.
范围<=1e16
T2
给出一个只包含大写字母的字符串,求ABC的出现次数相同的非空连续子串中的个数。
先求出字符A,B,C出现的前缀和,设为a,b,c。当a[i]-b[i]=a[j]-b[j]且b[i]-c[i]=b[j]-c[j]时,即是一种情况。枚举每个位置i,那么前面有多个j可能与i匹配,那么我们只需要将map的二元组(a[i]-b[i]和b[i]-c[j])存起来,并累计答案即可。注意要讲map的初值0,0赋值为1.然而我觉得只有ABC三种字符,得分20.
字符串长度<=1e6
T3
给出di个数字i,将这些数字和若干个0(0可以不用)组合后被11整除,这个数至少需要多少位。
有一个数学结论:一个数的奇数位之和-偶数位之和能被11整除,那么这个数就能被11整除。
由这个结论出发,考虑数位dp,设f[i][j][k]表示已经用了i个数,余数为j,奇数位上放了k个数的可行性。
f[i][j][k+1]|=f[i-1][(j+num[i])%11][k], f[i][j][k]|=f[i-1][(f-num[i]+11)%11][k].(num[i]要用到的第i个数,也就是将di拆开了)
最后输出时只要找到一个f[n][11][i],那么这个状态对答案的贡献有两种情况,一是奇数位的数与偶数位一样多,那么就是i<<1.如果奇数位多,则是(i<<1)-1.显然不存在偶数位多的情况(因为存在就不可能是最优值).
sigma d[i] <= 100
T4
有n个怪,每个怪有一个生命值hi,有m点能量,每次可以选举如下任意一次操作:1.使其中的一个hi--;2.消耗一点能量,使其中的hi-=2;3.消耗一点能量,是每一个hi--.每次操作完毕后剩下生命值比0打的所以怪物都会造成一点伤害,求受到的伤害最小值。
显然我们要将hi从小到大排序。有一个很明显的贪心策略是有能量一定先把能量用掉,当当前打的这个怪只剩一点生命值或怪的数量大于3时,肯定是用群攻来的更赚;否则就用重击(就是操作2),能力用完后就按照血量值从小到大把怪物一个一个安排就好了。时间复杂度O(NlogN).
n<=1e5,m<=100.
普转提Day2的更多相关文章
- ZROI #364. 【2018普转提day18专题】嘤嘤嘤
ZROI #364. [2018普转提day18专题]嘤嘤嘤 直接贴代码 具体见注释 #include<stdio.h> #include<cstring> #include& ...
- ZROI #365. 【2018普转提day18专题】嘤嘤嘤嘤
ZROI #365. [2018普转提day18专题]嘤嘤嘤嘤 直接放代码 具体做法见注释 #include<stdio.h> #include<cstring> #inclu ...
- ZR普转提2
ZR普转提2 A 谢谢刁神教我A题 刚开始读错题了,以为是一个不可做的数位DP,然后就暴力滚粗 直到问了问刁神,发现自己题意是错的 然后成了比较简单的题目 直接暴力枚举每一位填什么,剩下的位数的数字都 ...
- ZR9.8普转提
ZR9.8普转提 A,B 打过的CF原题,不管了 C 确认过眼神,是我不会写的DP, 发现这个题目要求的过程类似与一个所有括号都不一样的括号匹配的过程 但是限制条件非常多,有点无从下手的感觉 我们设\ ...
- ZROI2018普转提day6t1
传送门 分析 记录区间最大值,线段树上二分找比这个点大的最靠前位置即可 代码 #include<iostream> #include<cstdio> #include<c ...
- ZROI2018普转提day6t3
传送门 分析 居然卡哈希数,万恶的出题人...... 感觉我这个方法似乎比较呆,我的代码成功成为了全网最慢的代码qwq 应该是可以直接哈希的 但由于我哈希学的不好又想练练线段树维护哈希,于是就写了个线 ...
- ZROI2018普转提day7t1
传送门 分析 一道有意思的小题... 我们发现如果$(1,1)$为白色,则将其变为白色需要偶数次操作,而如果为黑色则需要奇数次操作 我们知道要让A赢需要奇数次操作,所以我们只需要判断$(1,1)$的颜 ...
- ZROI2018普转提day7t2
传送门 分析 首先我们不难想到我们一定可以将每一个点分开算,然后看这个点被几个矩形包含 于是对于位置为$(i,j)$的点它被包含的次数为$i * (n-i+1) * j * (m-j+1)$ 这个式子 ...
- ZROI2018普转提day1t4
传送门 分析 就是飞飞侠这道题...... 我们可以将这张图建成好几层,每一层可以向下一层的上下左右无代价移动,而对于每个点如果付b[i][j]的代价就可以走到比它高a[i][j]的层上.我们用这种方 ...
随机推荐
- Federated Learning with Matched Averaging
挖个坑吧,督促自己仔细看一遍论文(ICLR 2020),看看自己什么时候也能中上那么一篇(流口水)~ 郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 联邦学习允许边缘设 ...
- Overcoming Forgetting in Federated Learning on Non-IID Data
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文. NeurIPS 2019 Workshop on Federated Learning ...
- muduo源码解析7-countdownlatch类
countdownlatch class countdownlatch:noncopyable { }; 作用: countdownlatch和mutex,condition一样,用于线程之间的同步, ...
- JacaScript实现call apply bind函数
一.call函数 模拟实现第一步:整体思路 Function.prototype.call2=function(context){ context.fn=this; //1.将函数(谁调用 即this ...
- Appium学习笔记
1.创建Maven项目 2.POM文件添加java-client依赖坐标 3.修改脚本,执行脚本 UIAutomator2(自动装置引擎) 4723:Appium服务器端口,用来监听脚本发送过来的指令 ...
- 架构设计 | 基于电商交易流程,图解TCC事务分段提交
本文源码:GitHub·点这里 || GitEE·点这里 一.场景案例简介 1.场景描述 分布式事务在业务系统中是十分常见的,最经典的场景就是电商架构中的交易业务,如图: 客户端通过请求订单服务,执行 ...
- 安装oracleXE快捷版(一)
yum找不到包,参考了一些文章,用iso上的包安装了.在文章后面贴有我实际的操作(黑体)和日志. 更换yum源https://www.cnblogs.com/zrxuexi/p/11587173.ht ...
- 前端修仙之路---一、如何用gulp搭建一套web前端开发框架
引言 相信从事web前端开发的朋友都知道,现在流行的Vue.AngularJS等框架中,它们都有独立的脚手架来创建项目,比如Vue有vue-cli,Angular有angula-cli.脚手架可以一键 ...
- unity3d插入android有米广告
有米官网:http://www.youmi.net/register?r=MTI0MDg= 国内的广告,我觉得万普和有米还不错,我也只试了这两个,其他的都是看评价的,呵呵~~~首先我们去有米官网注册一 ...
- JAVA读取文件夹大小
几种不同的实现方法: (一)单线程递归方式 package com.taobao.test; import java.io.File; public class TotalFileSizeSequen ...