题目背景

题目描述

输入格式

输出格式

样例输入输出

数据范围

解析

我们设两个作弊器的参数分别为\((a_1,b_1)\)和\((a_2,b_2)\),那么设

\[S1=\frac{a_1}{b_1},S2=\frac{a_2}{b_2}
\]

假如我们同时选择这两个作弊器,那么得到的Maxtire时间则为

\[S=\frac{a_1+a_2}{b_1+b_2}
\]

不妨设\(S1<S2\),那么

\[S1-S2=\frac{a_2b_1-a_1b_2}{b_1b_2}>0\Rightarrow a_2b_1-a_1b_2>0
\]

所以

\[S-S1=\frac{a_2b_1-a_1b_2}{(b_1+b_2)b_1}>0\Rightarrow S>S1
\]

同理可得,\(S<S2\)。

由此类推,无论我们怎么选择,总能找到一个形如\(\frac{a_i}{b_i}\)的单个分数为最小值。这个分数即为将所有\(a_i/b_i\)排序后的最小值。由于最小值可能有多个,且多个相同的值合起来仍是相同的,所以设最小值有\(m\)个,则最后的方案数为

\[C_m^1+C_m^2+...+C_m^m=2^m-1
\]

代码

#include <iostream>
#include <cstdio>
#include <iomanip>
#include <algorithm>
#include <cmath>
#define N 1000002
using namespace std;
const int mod=998442553;
const double eps=1e-10;
int t,n,i,cnt;
double a[N],b[N],c[N];
int poww(int a,int b)
{
long long ans=1,base=a;
while(b){
if(b&1) ans=ans*base%mod;
base=base*base%mod;
b>>=1;
}
return ans%mod;
}
int main()
{
freopen("mine.in","r",stdin);
freopen("mine.out","w",stdout);
cin>>t;
while(t--){
cin>>n;
for(i=1;i<=n;i++) cin>>a[i];
for(i=1;i<=n;i++) cin>>b[i];
for(i=1;i<=n;i++) c[i]=b[i]/a[i];
sort(c+1,c+n+1);
if(c[1]<=1.0*10000){
cnt=1,i=2;
while(i<=n&&fabs(c[i]-c[1])<=eps) cnt++,i++;
cout<<setprecision(8)<<fixed<<c[1]<<' '<<(poww(2,cnt)-1)%mod<<endl;
}
else cout<<"Impossible"<<endl;
}
fclose(stdin);
fclose(stdout);
return 0;
}

Test 6.23 T1 扫雷的更多相关文章

  1. 9.23 T1 tree

    题意描述: 给你一个长度为 \(n\) 的序列,让你从中选出 \(k\) 个数组成一个集合,定义这个集合的极限高度为\(a_i...a_k\) 的最大值. 让你求所有的集合极限高度 之和对 \(100 ...

  2. python基础之元组、文件操作、编码、函数、变量

    1.集合set 集合是无序的,不重复的,主要作用: 去重,把一个列表变成集合,就可以自动去重 关系测试,测试两组数据的交集,差集,并集等关系 操作例子如下: list_1 = [1,4,5,7,3,6 ...

  3. java多线程系类:基础篇:07线程休眠

    概要 本章,会对Thread中sleep()方法进行介绍.涉及到的内容包括:1. sleep()介绍2. sleep()示例3. sleep() 与 wait()的比较 转载请注明出处:http:// ...

  4. 如何对于几百行SQL语句进行优化?

    1.最近在开发中遇到的一些关于几百行SQL语句做查询的问题,需要如何的解决优化SQL这确实是个问题,对于当下的ORM 框架 EF 以及其他的一些的开源的框架例如Drapper ,以及Sqlite-Su ...

  5. 七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)

    http://blog.csdn.net/xw20084898/article/details/17564957 一.工具:VC+OpenCV 二.语言:C++ 三.原理 otsu法(最大类间方差法, ...

  6. 【转】七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)

    http://blog.csdn.net/xw20084898/article/details/17564957 一.工具:VC+OpenCV 二.语言:C++ 三.原理 otsu法(最大类间方差法, ...

  7. YTU 2617: B C++时间类的运算符重载

    2617: B C++时间类的运算符重载 时间限制: 1 Sec  内存限制: 128 MB 提交: 284  解决: 108 题目描述 C++时间类的运算符重载 定义一个时间类Time,其数据成员为 ...

  8. GDB的non-stop模式

    线程调试必杀技 - GDB的non-stop模式   作者:破砂锅 开源的GDB被广泛使用在Linux.OSX.Unix和各种嵌入式系统(例如手机),这次它又带给我们一个惊喜. 多线程调试之痛 调试器 ...

  9. 牛客OI周赛9-提高组题目记录

    牛客OI周赛9-提高组题目记录 昨天晚上做了这一套比赛,觉得题目质量挺高,而且有一些非常有趣而且非常清奇的脑回路在里边,于是记录在此. T1: 扫雷 题目链接 设 \(f_i\) 表示扫到第 \(i\ ...

随机推荐

  1. 【C++进阶:STL常见性质】

    STL中的常用容器包括:顺序性容器(vector.deque.list).关联容器(map.set).容器适配器(queue.stac) 转载自:https://blog.csdn.net/u0134 ...

  2. mysql_存储引擎层-innodb buffer pool

    buffer pool 是innodb存储引擎带的一个缓存池,查询数据时,首先从内存中查询 数据如果内存中存在的话直接返回. innodb buffer pool 和 qcache 的区别:Qcach ...

  3. js-禁止长页面滚动

    标题的需求问题其实我经常遇到.尤其是在碰到页面同时出现有视频及弹层的情况. 当然我说的问题皆是针对微信H5开发的哈 IOS中,视频播放,弹层出现时,视频在弹层的下面,不会出现问题: 安卓手机中,完了, ...

  4. PHP 图片+文字+二维码生成小程序分享海报

    思路: 1.请求微信接口获取一定尺寸微信二维码 2.准备海报主图,处理尺寸按比例缩放 3.准备分享语录,计算段落高度 4.生成海报:创建画布,分写别入按顺序和位置写入二维码.图片.文字等 5.保存海报 ...

  5. VS2012发布Web应用程序

    一.右键项目-->发布 二.配置文件:新建-->配置文件名称,如MyProject 三.连接:1.发布方法:文件系统  2.目标位置:自己在本地建立一个文件夹 3.目标URL:可以不填 四 ...

  6. vue中的computed 与 watch

    计算属性 computed 指通过计算得来的属性,用于监听属性的变化 computed里面的函数调用的时候 不需要加() 方法里必须有一个返回值 return computed中的函数不会通过事件去触 ...

  7. python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件

    上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 ...

  8. JavaSE编码试题强化练习7

    1.编写应用程序,创建类的对象,分别设置圆的半径.圆柱体的高,计算并分别显示圆半径.圆面积.圆周长,圆柱体的体积. /** * 圆类 */ public class Circle { /** * 类属 ...

  9. [Web 前端] 004 html 小练习

    1. 锚点 用法 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  10. SpringMvc+Mybatis开发调用存储过程

    <mapper namespace="com.jkw100.ssm.mapper.CustomerMapperCustom" > <!-- statementTy ...