题解: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 ...
随机推荐
- 卧槽,牛逼!vue3的组件竟然还能“暂停”渲染!
前言 有的时候我们想要从服务端拿到数据后再去渲染一个组件,为了实现这个效果我们目前有几种实现方式: 将数据请求放到父组件去做,并且使用v-if控制拿到子组件后才去渲染子组件,然后将数据从父组件通过pr ...
- 《Programming from the Ground Up》阅读笔记:p103-p116
<Programming from the Ground Up>学习第7天,p103-p116总结,总计14页. 一.技术总结 1.读写文件 (1)linux.s linux.s: #fi ...
- 使用FastAPI来开发项目,项目的目录结构如何规划的一些参考和基类封装的一些处理
使用FastAPI开发项目时,良好的目录结构可以帮助你更好地组织代码,提高可维护性和扩展性.同样,对基类的封装,也可以进一步减少开发代码,提供便利,并减少出错的几率. 下面是一个推荐的目录结构示例: ...
- Nano 编辑器入门
按键映射 ⌃: Control M: Meta (Alt) 编辑文件: nano MyFile.txt 退出并保存: ⌃-X 退出(此时 nano 会提示你要不要保存,按 Y 保存) Nano 提示输 ...
- Docker 构建多平台镜像
构建多平台镜像的方法分为两种:一种是在不同平台的机器上分别构建并推送对应平台的镜像,然后通过 Docker Manifest 将两个镜像标签合并为一个.另一种是通过 Docker buildx 在一台 ...
- Python 潮流周刊#67:uv 的重磅更新(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- el-form 自定义验证规则,手动触发某项验证
1. ui <el-form ref="xXXForm" :rules="XXXFormRules" > <el-form-item labe ...
- MVCC能否解决幻读?
一.什么是MVCC 多版本控制: 指的是一种提高并发的技术.最早的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞.引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行,这样大幅度提 ...
- C#整合Ollama实现本地LLMs调用
前言 近两年AIGC发展的非常迅速,从刚开始的只有ChatGPT到现在的很百家争鸣.从开始的大参数模型,再到后来的小参数模型,从一开始单一的文本模型到现在的多模态模型等等.随着一起进步的不仅仅是模型的 ...
- JavaScript之Blob对象基本用法及分片上传示例
Blob基本用法 创建 通过Blob的构造函数创建Blob对象: new Blob(blobParts[, options]) blobParts: 数组类型, 数组中的每一项连接起来构成Blob对象 ...