题解:CF685A Robbers' watch
题解:CF685A Robbers' watch
感觉这题难点主要在理解题意。
题意
一天 \(n\) 个小时,一小时 \(m\) 分钟,手表用 \(7\) 进制表示时间(位数未填满补前导零),求问这个手表显示的每一位数字都不一样的时刻数量。
分析
因为是 \(7\) 进制,所以每一个数字位只可能出现 \(0\sim 6\) 这 \(7\) 种数字,根据容斥原理,如果 \(n\) 和 \(m\) 的 \(7\) 进制位数之和大于 \(7\) 位了,那么就一定会有重复的数字,直接输出 \(0\)。
因为限制到位数和只能不超过 \(7\) 位,那么数据规模就很小了,可以直接暴力枚举 \(n\) 和 \(m\),枚举每个时刻,用 \(\text{check}\) 函数枚举一下 \(7\) 进制位有无重复即可。
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
int xx,yy;
int vis[10];
bool check(int x,int y)
{
int a=x,b=y;
for(int i=0;i<=6;i++)
vis[i]=0;
for(int i=1;i<=xx;i++)
{
vis[a%7]++;
a/=7;
}
for(int i=1;i<=yy;i++)
{
vis[b%7]++;
b/=7;
}
for(int i=0;i<=6;i++)
if(vis[i]>=2)
return 0;
return 1;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>n>>m;
if(n*m>6543210)
{
cout<<0<<endl;
return 0;
}
int nn=n,mm=m;
n--,m--;
while(n)
{
xx++;
n/=7;
}
while(m)
{
yy++;
m/=7;
}
xx=max(xx,1ll);
yy=max(yy,1ll);
// cout<<xx<<" "<<yy<<endl;
int ans=0;
for(int i=0;i<nn;i++)
for(int j=0;j<mm;j++)
if(check(i,j))
ans++;
cout<<ans<<endl;
return 0;
}
题解:CF685A Robbers' watch的更多相关文章
- UVA1616-Caravan Robbers(枚举)
Problem UVA1616-Caravan Robbers Accept: 160 Submit: 1156Time Limit: 3000 mSec Problem Description O ...
- UVA1616-Caravan Robbers(二分)
Problem UVA1616-Caravan Robbers Accept: 96 Submit: 946Time Limit: 3000 mSec Problem Description Lon ...
- Codeforces Round #359 (Div. 1) A. Robbers' watch 暴力
A. Robbers' watch 题目连接: http://www.codeforces.com/contest/685/problem/A Description Robbers, who att ...
- SCOJ 4484 The Graver Robbers' Chronicles 后缀自动机
4484: The Graver Robbers' Chronicles 题目连接: http://acm.scu.edu.cn/soj/problem.action?id=4484 Descript ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
随机推荐
- JavaScript设计模式样例十五 —— 状态模式
状态模式(State Pattern) 定义:创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象.目的:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类 ...
- JavaScript设计模式样例十二 —— 享元模式
享元模式(Flyweight Pattern) 定义:减少创建对象的数量,以减少内存占用和提高性能.目的:用共享技术有效地支持大量细粒度的对象.场景:系统中有大量对象. // 构建享元对象 class ...
- Modbus ASCII 获取数据
根据银河高低温试验箱协议读取数据 1.协议内容 8.1:通讯协议介绍 8.1.5 通讯设置 本通讯协议使用异步串行通讯方式,1 个起始位.8 个数据位.2 个停止 位.无奇偶校验数据通讯格式,其中数据 ...
- SpringBoot启动项目报错:java.lang.UnsatisfiedLinkError: D:\files\software\jdk-15.0.1\jdk-17.0.3.1\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
目录 问题描述 解决方法: 问题描述 在运行向的时候出现报错: java.lang.UnsatisfiedLinkError: D:\files\software\jdk-15.0.1\jdk-17. ...
- 国内加速拉取docker镜像的几种方法
参考首页 快捷命令,使用本站代理拉取镜像,并修改回原始镜像名,在删除代理镜像名. 参考以下 docker cli 和 docker-compose.yml 修改镜像名后,继续一直使用本站代理服务未启动 ...
- github代理加速
终端命令行 支持终端命令行 git clone , wget , curl 等工具下载.支持 raw.githubusercontent.com , gist.github.com , gist.gi ...
- Python存储与读写二进制文件
技术背景 一般情况下我们会选择使用明文形式来存储数据,如json.txt.csv等等.如果是需要压缩率较高的存储格式,还可以选择使用hdf5或者npz等格式.还有一种比较紧凑的数据存储格式,就是直接按 ...
- CSS & JS Effect – Virtual Scrolling
前言 我正在写 Angular CDK Scrolling 教程,它里面有一个 Virtual Scrolling 功能.借此机会,我想顺便写一篇纯 Sass & TS 的版本作为学习. Vi ...
- Flutter Engage China 开发者常见问题解答 | 下篇
再次感谢大家对 Flutter Engage China 活动 的关注和积极参与!我们在活动前后收到了很多来自开发者的反馈和问题,Flutter 团队和演讲嘉宾在直播 Q&A 环节中也针对部分 ...
- linux中安装mysq5.7
linux中安装mysq5.7 一. 安装mysql yum install mariadb-server mariadb 二. 开启mysql service mysqld start 四. 停止m ...