刷题总结——电影(ssoi)
题目:
题目背景
SOURCE:NOIP2014-SXYZ T2
题目描述
小美去看电影,发现这个电影票很神奇,有一个编号 (x,y) 表示为第 x 排第 y 位。
小美是个聪明的女孩子,她有自己的一套对于幸运的编号的定义:如果(a,b) 如果是幸运的,那么 a*b=rev(a)*rev(b),a>0,b>0。rev(x) 的定义是把 x 的十进制的数字翻转,比如:rev(20010)=1002,rev(1010)=101。
现在她想要至少 w 张幸运的电影票,问座位至少有几个。
座位个数为:max(a)*max(b),且要保证 max(a)≤maxa 和 max(b)≤maxb 。
输入格式
第一行有 3 个数 maxa,maxb,w。
输出格式
输出最少的座位个数,如果无解输出“-1”。
样例数据 1
样例数据 2
样例数据 3
样例数据 4
备注
【数据规模与约定】
对于 30% 的数据:1≤maxa,maxb≤1000;
对于 100% 的数据:1≤maxa,maxb≤105;1≤w≤107。
题解:
这个真心不好讲····大概就是删列加行的过程····看代码吧
代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
using namespace std;
map<double,int>f;//记录已知行中x/rev(x)的个数
map<double,int>g;//记录已知列中x/rev(x)的个数
double b[],c[];//分别记录x/rev(x),rev(x)/x;
int n,m,k;
long long ans,i,j,h;
inline int fan(int x)
{
int k1=x,f=;
for(;k1;k1/=)
f=f*+k1%;
return f;
}
int main()
{
//freopen("a.in","r",stdin);
scanf("%d%d%d",&n,&m,&k);
for(i=;i<=max(n,m);i++)
{
int l=fan(i);
b[i]=(double)i/l;
c[i]=(double)l/i;
}
for(i=;i<=n;i++)
f[b[i]]++;
for(j=;j<m&&h<k;)
{
j++;
g[b[j]]++;
h+=f[c[j]];
}
ans=i*j;
if(ans<k) cout<<"-1"<<endl;
for(;i>;i--)
{
f[b[i]]--;
h-=g[c[i]];
for(;j<m&&h<k;)
{
j++;
h+=f[c[j]];
g[b[j]]++;
}
if(h<k) break;
ans=min(ans,(i-)*j);
}
cout<<ans<<endl;
return ;
}
刷题总结——电影(ssoi)的更多相关文章
- mysql刷题(不定时更新)
面试阶段大家基本都会问一些mysql的题,具体的高深理论以后再慢慢补充,但是刷题是不可避免的,下面直接上货 创建/删除表和索引系列 创建表 CREATE TABLE if not exists `te ...
- LeetCode刷题系列
LeetCode 我们工作面试和提高自身数据结构和算法能力的时候往往需要刷刷题,我选择LeetCode是通过一个留学论坛了解的.专业,覆盖语种全面. 提前说说刷题的心得: 尽量手写代码,少使用IDE的 ...
- ife任务刷题总结(一)-css reset与清除浮动
本文同时发布于本人的个人网站www.yaoxiaowen.com 百度创办的前端技术学院,是一个面向大学生的前端技术学习平台.虽然只有大学生才有资格报名,提交代码进行比赛排名.但是这并不妨碍我们这些初 ...
- 刷题ING...
我用codeVS刷题.. 努力准备!!
- XidianOJ 1020 ACMer去刷题吧
题目描述 刷题是每个ACMer必由之路,已知某oj上有n个题目,第i个题目小X能做对的概率为Pi(0<=Pi<=1,1<=i<=n) 求小X至少做对k道题的概率 输入 第一行输 ...
- 【BZOJ-4590】自动刷题机 二分 + 判定
4590: [Shoi2015]自动刷题机 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 156 Solved: 63[Submit][Status ...
- NOI题库分治算法刷题记录
今天晚自习机房刷题,有一道题最终WA掉两组,极其不爽,晚上回家补完作业欣然搞定它,特意来写篇博文来记录下 (最想吐槽的是这个叫做分治的分类,里面的题目真的需要分治吗...) 先来说下分治法 分治法的设 ...
- NOI题库刷题日志 (贪心篇题解)
这段时间在NOI题库上刷了刷题,来写点心得和题解 一.寻找平面上的极大点 2704:寻找平面上的极大点 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个平面上,如果有两个点( ...
- 用js刷题的一些坑
leecode可以用js刷题了,我大js越来越被认可了是吧.但是刷题中会因为忽略js的一些特性掉入坑里.我这里总结一下我掉过的坑. 坑1:js中数组对象是引用对象 js中除了object还有数组对象也 ...
随机推荐
- VC操作WORD文档总结
一.写在开头 最近研究word文档的解析技术,我本身是VC的忠实用户,看到C#里面操作WORD这么舒服,同时也看到单位有一些需求,就想尝试一下,结果没想到里面的技术点真不少,同时网络上的共享资料很多, ...
- 初习mysql procedure
1.存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户 ...
- Ubuntu 14.04 配置confluence破解
1. 配置java环境,请参展我的另一篇博客 http://www.cnblogs.com/youran-he/p/8607155.html 2. 下载文件 https://pan.baidu.com ...
- Scalatra
SBT和giter8 在你开始着手之前,你需要安装两个工具(我假设你已经安装了JDK1.6+).我将给你提供简缩的安装指令,详细版的安装指令可通过 下面的scalatra页面找到( http://ww ...
- (五)使用Docker镜像(上)
1. 获取镜像 # 获取镜像 docker pull image:tag // 不使用tag 默认下载latest标签的镜像,即最新的镜像. 2. 查看镜像信息 # 查看镜像信息docker imag ...
- CAD交互绘制mcdbsolid对象(网页版)
主要用到函数说明: _DMxDrawX::DrawSolid 绘McDbSolid对象.详细说明如下: 参数 说明 DOUBLE dX1 第一个点X DOUBLE dY1 第一个点Y DOUBLE d ...
- 79 最长公共子串 (lintcode)
f[i][j]表示的是以第i个结尾和第j个结尾 class Solution { public: /* * @param A: A string * @param B: A string * @ret ...
- shell脚本,用awk实现替换文件里面的内容。
文件是这样,有ID和具体信息,ID行以@开头,后面的信息有空格,把第一个空格后的全部内容替换为空格前的字符. 用AWK来实现. @AA10 P 7 #YYYYYYYYYYYYYYYYYYZZZZZZZ ...
- div section article区分--20150227
div section article ,语义是从无到有,逐渐增强的.div 无任何语义,仅仅用作样式化或者脚本化的钩子(hook),对于一段主题性的内容,则就适用 section,而假如这段内容可以 ...
- 响应式web设计视图工具及插件总结----20150113
响应式web设计可以说火不火是迟早的,下面就对于最开始的视口调试的方法汇总,希望有好的方法大家一起交流. 1.火狐:从Firefox升级到29.0之后就不直接支持Firesizer了. 先安装Add- ...