普转提——有趣的数,欢乐ABC,打游戏
有趣的数——构造符合条件的数
给你一个区间,问有多少个数符合每一位中,只有一个数字和其他数字不同,也就是其他数字都相同,有且只有一个异类;
数据范围是1e16;
因为只考虑数量而不用管大小;
只要0到9枚举出来就好了;
#include<cstdio>
#include<map>
#include<cstring>
#include<algorithm> using namespace std;
typedef long long ll;
map<ll,int>mp;
ll l,r;
int a[]; int check(int x,int len)
{
ll sum=;
for(int i=;i<=len;i++)
{
if(a[i]==-) a[i]=x;
sum=sum*+a[i];
}
if(sum>=l&&sum<=r)
{
if(!mp[sum])
{
mp[sum]=;
return ;
}
//printf("%d\n",sum);
return ;
}
else return ;
}
int ans;
int main()
{
scanf("%lld%lld",&l,&r);
for(int len=;len<=;len++)
{
for(int i=;i<=;i++)
{
for(int j=;j<=;j++)//单独的数
{
if(i==j) continue;
for(int k=;k<=len;k++)//单独的数的位置
{
memset(a,-,sizeof(a));
if(k==&&j==) continue;
a[k]=j;
if(check(i,len)) ans++;
}
}
}
}
printf("%d",ans);
return ;
}
记得判重,用的map省心;
欢乐ABC——连续区间找相同的量
给你一个字符串,一个区间中A,B,C的数量如果相等,这样的区间的个数是多少,区间要连续;
数据范围1e6;
用前缀和记录ABC的个数;
如果a[j]-a[i-1]=b[j]-b[i-1],b[j]-b[i-1]=c[j]-c[i-1],即a[j]-b[j]=a[i-1]-b[i-1],b[j]-c[j]=b[i-1]-c[i-1],这样的区间i到j就是合法的;
(a[i]-b[i],b[i]-c[i])为一个元素,访问前方有多少相等的元素;
我们还可以再次转化,令A=1e7,B=-999999,C=-1;
用sum记录前缀和,再sort一遍,求相邻的星通的数;
因为排序过后,相邻的数如果相等,说明在这两个数之间A+B+C=0;也就是三个字符的数量相等;
#include<cstdio>
#include<map>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=1e6+;
char s[maxn];
int a=,b=-,c=-;
long long sum[maxn];
int ans;
int main()
{
scanf("%s",s);
int len=strlen(s);
for(int i=;i<len;i++)
{
sum[i+]=sum[i];
if(s[i]=='A') sum[i+]+=a;
else if(s[i]=='B') sum[i+]+=b;
else if(s[i]=='C') sum[i+]+=c;
}
sort(sum,sum+len+);
int last=;
for(int i=;i<=len;i++)
{
if(sum[i]==sum[i-])
{
ans+=i-last;
}
else last=i;
}
printf("%d",ans);
return ;
}
打游戏
小强又双叒叕一天随手AK的ZROI的J转S模拟赛。AK完了的小强觉得OI太简单了,太没意思了,于是开始打起了更有挑战的游戏。
小强在游戏里打怪。有一次,他一下子遇到了 n 个怪物。 每个怪物有一个生命值,第 i个怪物的生命值是 hi。而小强除了生命值之外,还有一个属性是魔法值 m。
小强和怪物们依次行动。每一回合,小强先行动,然后怪物们同时行动。小强每次可以选择以下行动之一:
• 普通攻击:令某个怪物的生命值减少 1。
• 重击:消耗 1 魔法值,令某个怪物的生命值减少 2。
• 群体攻击:消耗 1 魔法值,令全体怪物的生命值减少 1。
而每个存活的怪物(生命值严格大于 0)每次会令小强的生命值减少 1。假设小强有足够的生命值来维持存活,小强想知道自己至少需要被消耗多少生命值才能击败所有怪物。
第一行为两个正整数 n 和 m。
第二行为 nn 个正整数,第 i 个数为 hi
普转提——有趣的数,欢乐ABC,打游戏的更多相关文章
- ZROI #364. 【2018普转提day18专题】嘤嘤嘤
ZROI #364. [2018普转提day18专题]嘤嘤嘤 直接贴代码 具体见注释 #include<stdio.h> #include<cstring> #include& ...
- ZR普转提2
ZR普转提2 A 谢谢刁神教我A题 刚开始读错题了,以为是一个不可做的数位DP,然后就暴力滚粗 直到问了问刁神,发现自己题意是错的 然后成了比较简单的题目 直接暴力枚举每一位填什么,剩下的位数的数字都 ...
- ZR9.8普转提
ZR9.8普转提 A,B 打过的CF原题,不管了 C 确认过眼神,是我不会写的DP, 发现这个题目要求的过程类似与一个所有括号都不一样的括号匹配的过程 但是限制条件非常多,有点无从下手的感觉 我们设\ ...
- nyoj 85 有趣的数
点击打开链接 有趣的数 时间限制:3000 ms | 内存限制:65535 KB 难度: 描述 把分数按下面的办法排成一个数表. 1/1 1/2 1/3 1/4..... 2/1 2/2 2/3. ...
- CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)
问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高 ...
- P2022 有趣的数
P2022 有趣的数 题目描述 让我们来考虑1到N的正整数集合.让我们把集合中的元素按照字典序排列,例如当N=11时,其顺序应该为:1,10,11,2,3,4,5,6,7,8,9. 定义K在N个数中的 ...
- CCF软考---《有趣的数》
脑子一热报了CCF的软测..但是又觉得好像并没有什么卵用,就当为蓝桥杯预热然后顺便去软件学院玩一玩吧,遇到一个有意思的题: time limits : 1s 问题描述 我们把一个数称为有趣的,当且仅当 ...
- CCF系列之有趣的数(201312-4)
题目链接: http://115.28.138.223:81/view.page?opid=4 试题名称: 有趣的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 我们把一个 ...
- CSP201312-4 有趣的数【dp】
问题描述 试题编号: 201312-4 试题名称: 有趣的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, ...
随机推荐
- array_chunk — 将一个数组分割成多个
说明 array_chunk ( array $array , int $size [, bool $preserve_keys = false ] ) : array 将一个数组分割成多个数组,其中 ...
- 帝国cms“建立目录不成功,请检查目录权限”的解决方法
就这个看似简单的问题我折腾了两天,百度看产生这个问题的原因有很多也很宽泛,大部分说的是初始化内置数据,但我出现“建立目录不成功,请检查目录权限”的原因估计只有少部分人会遇到. 内置初始化数据是你上传文 ...
- 设计模式(三)——装饰器模式(Decorator Pattern)
发现太过于刻意按照计划来写博客,有点不实际,刚好最近在一个网课上复习AOP的知识,讲到了装饰器模式和代理模式,顺便复习总结一下. 首先了解一下装饰器模式,从名字里面可以看出来,装饰器模式就类似于房子装 ...
- Linux学习笔记:cut命令
基础 功能:文件内容查看,显示行中指定部分,删除文件中指定字段.cut 命令用于显示每行从开头算起 a - b 的文字. 语法: cut [-bn] [file.txt] cut [-c] [file ...
- Cryptography -- 密码学
Introduction to Cryptography Cryptography enables you to store sensitive information or transmit it ...
- spring-security2配置精讲(转载)
本文转载自牛人downpour的帖子: http://www.iteye.com/topic/319965 Spring 论坛上看了不少Spring Security的相关文章.这些文章基本上都还是基 ...
- EF方式增、删、改、查(基本使用)
右击项目——添加——新建项——数据(C#)——选择ADO.NET实体数据模型——点击添加——然后根据实体数据模型向导来一步步的做. 用到的表 using System; using System.Da ...
- DNS理解
前言 英译汉的时候会掩盖很多本质,导致很多问题稀里糊涂,问的人不知道怎么说,回答的人也是答非所问. DNS是Domain Name System缩写,不是Domain Name Server,或者Do ...
- 14.Vue组件
1.定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可: 组件化和模块化的不 ...
- linux 、 CentOs ---> 环境变量设置
Linux下环境变量设置 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错 ...