LOJ6368:请让本题永远沉睡于此——题解
给一个分数,求对p=1e9+7取模的值。
给高一同学出的毒瘤模拟题,正好试试给loj传题,竟然过审了,虽然个人觉得很水,但是考试情况来看仅有一人得到了21分的好成绩。
可能坑有点多。
1.作为一个不细心的普及组选手如何得到0pts的好成绩
这这这不是水就能过吗?
费马小定理或扩欧求逆元不就可以了吗。
emmm高精度太难写,弃了吧。
反正51pts够了。
2.作为一个不细心的提高组选手只会做D1T1如何得到0pts的好成绩
这这这不是水就能过吗?
费马小定理或扩欧求逆元不就可以了吗。
高精度不就是a*b^(p-2)%p=a*(b%p)^(p-2)吗?
就敲一个高精除低精就行了。
100pts美滋滋。
3.作为一个不太细心的普及组选手如何得到21pts的好成绩
这这这不是水就能过吗?
费马小定理或扩欧求逆元不就可以了吗。
emm把分母为0的情况特盘掉,然后看一下提示。
woc出题人良心大大的坏,需要把负号提出来,不然第二个样例会输出500000003。
这样应该就有51pts了吧。
4.作为一个细心的普及组选手如何得到51pts的好成绩
咦30pts的包也不需要高精啊为什么单独拿出来呢?
哦如果分母是p的倍数的话不就没有逆元就无解了吗?
等等还要特判分子分母都有p这个因子的情况。
哇真的有51pts啊!
5.作为一个细心的提高组选手只会做D1T1如何得到100pts的好成绩
高精度的话有可能分子和分母有多个p因子。
那么我就暴力对上下同时除p直到有余数为止。(因为二者都是0说明可能还没有除尽)
判断分母余数为0且分子不为0就无解。
否则就费马小定理/扩欧计算即可。
100pts轻松到手。
代码有点丑,也懒得改写了。
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
typedef long long ll;
const ll p=1e9+;
ll qpow(ll k,ll n){
if(n==)return ;
if(n==)return k%p;
ll h=qpow(k,n/)%p;
if(n%==)return h%p*h%p;
return h%p*h%p*k%p;
}
char a[],b[];
ll c[],d[];
ll g[],h[];
ll e1=,e2=;
int s1,s2;
bool w=;
inline void init(){
scanf("%s%s",a,b);
if(a[]=='-'){
s1=strlen(a)-;
w=-w;
for(int i=;i<=s1;i++){
c[i]=a[i+]-'';
}
}else{
s1=strlen(a)-;
for(int i=;i<=s1;i++){
c[i]=a[i]-'';
}
}
if(b[]=='-'){
s2=strlen(b)-;
w=-w;
for(int i=;i<=s2;i++){
d[i]=b[i+]-'';
}
}else{
s2=strlen(b)-;
for(int i=;i<=s2;i++){
d[i]=b[i]-'';
}
}
return;
}
int main(){
init();
if(s2==&&d[]==){
printf("No Solution!\n");
return ;
}
if(s1==&&c[]==){
printf("0\n");
return ;
}
while(e1==&&e2==){
int l1=-,l2=-;
for(int i=;i<=s1;i++){
e1*=;
e1+=c[i];
if(e1>=p){
l1++;
g[l1]=e1/p;
e1%=p;
}else if(l1!=-){
l1++;
g[l1]=;
}
}
for(int i=;i<=s2;i++){
e2*=;
e2+=d[i];
if(e2>=p){
l2++;
h[l2]=e2/p;
e2%=p;
}else if(l2!=-){
l2++;
h[l2]=;
}
}
s1=l1;s2=l2;
for(int i=;i<=s1;i++)c[i]=g[i];
for(int i=;i<=s2;i++)d[i]=h[i];
}
if(e2==&&e1!=){
printf("No Solution!\n");
return ;
}
ll ans=e1%p*qpow(e2,p-)%p;
if(!w&&ans)putchar('-');
printf("%lld\n",ans);
return ;
}
+++++++++++++++++++++++++++++++++++++++++++
+本文作者:luyouqi233。 +
+欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/+
+++++++++++++++++++++++++++++++++++++++++++
LOJ6368:请让本题永远沉睡于此——题解的更多相关文章
- 【BZOJ4167】永远的竹笋采摘 分块+树状数组
[BZOJ4167]永远的竹笋采摘 题解:我们考虑有多少点对(a,b)满足a与b的差值是[a,b]中最小的.以为是随机数据,这样的点对数目可能很少,实测是O(n)级别的,那么我们已知了有这么多可能对答 ...
- TensorFlow之DNN(二):全连接神经网络的加速技巧(Xavier初始化、Adam、Batch Norm、学习率衰减与梯度截断)
在上一篇博客<TensorFlow之DNN(一):构建“裸机版”全连接神经网络>中,我整理了一个用TensorFlow实现的简单全连接神经网络模型,没有运用加速技巧(小批量梯度下降不算哦) ...
- 2019年腾讯最新Java工程师面试题
一.单选题(共21题,每题5分) 1在正则表达式当中下面那一个字符集表示非空格字符 A.[:graph:] B.[:digit:] C.[:space:] D.[:alpha:] 参考答案:A 答 ...
- 【BZOJ-3673&3674】可持久化并查集 可持久化线段树 + 并查集
3673: 可持久化并查集 by zky Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 1878 Solved: 846[Submit][Status ...
- ConCurrent in Practice小记 (2)
Java-ConCurrent2.html :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0 ...
- Reset CSS:只选对的,不选"贵"的
玉伯和正淳一起整理的一份 reset.css: /* KISSY CSS Reset 理念:清除和重置是紧密不可分的 特色:1.适应中文 2.基于最新主流浏览器 维护:玉伯(lifesinger@gm ...
- 【BZOJ】3673: 可持久化并查集 by zky & 3674: 可持久化并查集加强版(可持久化线段树)
http://www.lydsy.com/JudgeOnline/problem.php?id=3674 http://www.lydsy.com/JudgeOnline/problem.php?id ...
- 【转】Flask快速入门
迫不及待要开始了吗?本页提供了一个很好的 Flask 介绍,并假定你已经安装好了 Flask.如果没有,请跳转到 安装 章节. 一个最小的应用 一个最小的 Flask 应用看起来会是这样: from ...
- skynet newservice API参考
local skynet = require("skynet") skynet.start(start_func) c服务snlua启动后执行的第一个lua文件里面的主逻辑必定是s ...
随机推荐
- redis 学习笔记二
redis启动: 直接 redis-server.exe 启动服务,是按照redis默认配置启动的,如果想按照自己的配置文件启动,要加上 redis-server.exe redis.windows ...
- 腾讯WeTest开启“测试扶持计划”赠送重磅福利(含MTSC/TiD门票)
WeTest导语 伴随着互联网行业的发展,与各行各业的连接更加紧密,竞争也变得越发激烈,用户对于产品的体验开始变得更加“挑剔”.然而目前互联网产品却始终受到各类质量问题的困扰.以兼容问题为例,应用平台 ...
- ReadyAPI 教程和示例(二)
声明:如果你想转载,请标明本篇博客的链接,请多多尊重原创,谢谢! 本篇使用的 ReadyAPI版本是2.5.0 接上一篇: 4.修改SoapUI测试 本节将演示如何为测试用例添加测试步骤以及更改请求参 ...
- lesson 14 A noble gangster
lesson 14 A noble gangster there was a ++time++ 时期 times 时期/年代 in times of peace a sum of + money 一笔 ...
- 【WXS全局对象】Global
Global对象的方法调用时,无需使用 Global.parseInt(...),而是直接使用 parseInt(...) 方法: 名称 说明 parseInt(string, radix) 解析一个 ...
- Spring Cloud(九):配置中心(消息总线)【Finchley 版】
Spring Cloud(九):配置中心(消息总线)[Finchley 版] 发表于 2018-04-19 | 更新于 2018-05-07 | 我们在 Spring Cloud(七):配置中心 ...
- def语句和参数
如果调用print()或len()函数,你会传入一些值,放在括号内,在这里成为“参数”.也可以自己定义接受参数的函数.在文件编辑器中输入这个例子: def hello(name): print('He ...
- Python+Opencv实现把图片转为视频
1. 安装Opencv包 在Python命令行输入如下命令(如果你使用的Anaconda,直接进入Anaconda Prompt键入命令即可.如果你不知道Anaconda是什么,可以参考王树义老师的文 ...
- crt0.S(_main)代码分析
crt0,S(_main)代码分析 --- 1. 设置sp寄存器地址 //设置SP栈指针 #if defined(CONFIG_SPL_BUILD) && defined(CONFIG ...
- Sql server在cmd下的使用
方法一 在DOS提示符下,c:\>isql -U sa -P (此处输入SA密码) 注----大小写敏感 回车后会出现"1>"提示符,表明已成功,此时可在DOS下做任何 ...