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 ...
随机推荐
- android分析windowManager、window、viewGroup之间关系(一)
本文将主要介绍addview方法,在windowManager.window.viewGroup中的实现原理.首先将介绍这些类结构关系,然后分析其内在联系,介绍实现原理,最后介绍重要的一个参数wind ...
- 【廖雪峰老师python教程】——IO编程
同步IO 异步IO 最常见的IO——读写文件 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一 ...
- HTML 常见的 DOCTYPE 声明
<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!DOCTYPE> 声明不是 HTML 标签:它是指示 web 浏览器关 ...
- Jenkins构建完成后实现自动将war包部署到指定服务器
首先我们需要确定我们的jenkins安装了:publish over ssh 插件,如果没有安装,到-->jenkins首页-->系统管理-->插件管理-->可选安装里面去搜 ...
- 教你一招,提升你Python代码的可读性,小技巧
Python的初学者,开发者都应该知道的代码可读性提高技巧,本篇主要介绍了如下内容: PEP 8是什么以及它存在的原因 为什么你应该编写符合PEP 8标准的代码 如何编写符合PEP 8的代码 为什么我 ...
- Zookeeper与Eureka的区别
Zookeeper与Eureka的区别 想要了解Zk与eureka的区别首先要知道CAP定理 CAP定理 Mysql强一致性(数据唯一出处),设计数据库设计的三范式 (表必须有主键:表不能有重复的列: ...
- 小程序页面的四种文件(JSON、WXML、WXSS、JS)加载顺序
一个小程序页面由四种文件组成: 1)json 页面配置文件 2)js 页面逻辑文件(必需) 3)wxml 页面结构文件(必需) 4)wxss 页面样式文件 这四个文件的加载顺序: 第一步: 加载页面j ...
- java字符转义
之前对java字符转义这一块稍作了解,在这里理理自己主观浅显的理解 这里会谈谈字符编码的是另一种问题和转义没有关系 以下面代码做分析 System.out.println("a". ...
- HDU 4568 Hunter(最短路径+DP)(2013 ACM-ICPC长沙赛区全国邀请赛)
Problem Description One day, a hunter named James went to a mysterious area to find the treasures. J ...
- 关于docker 基础使用记录
Docker Hub地址:https://hub.docker.com Docker Hub 存放着 Docker 及其组件的所有资源.Docker Hub 可以帮助你与同事之间协作,并获得功能完整的 ...