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 ...
随机推荐
- 跟浩哥学自动化测试Selenium -- 我的第一个Demo (2)
我的第一个Demo 开始写第一个 Demo 之前,先熟悉一下编写 Selenium 脚本的四个步骤: 驱动路径写法分析:System.setProperty 主要做用是设置系统属性,第一个参数为系统属 ...
- 前端开发工程师 - 01.页面制作 - 第4章.CSS
第4章.CSS CSS简介 Cascading Style Sheet 层叠样式表:定义页面中的表现样式 history: CSS1(1996)--CSS2(1998)--着手CSS3草案(拆分成很多 ...
- 微信小程序navigator跳转失效
在编写小程序时遇到一个问题:使用 <navigator url='/pages/lists/index'>...</navigator>进行跳转没有反应.控制台也没有报错,ap ...
- Laxcus大数据管理系统2.0(7)- 第五章 数据构建
第五章 数据构建 在数据处理过程,我们经常会遇到这样的情况:大多数时候,用户最初输入的数据会含有大量无意义的.杂乱的信息,需要经过提炼.收集.汇总等一系列手段,才能产生有意义和用户可识别的数据内容:当 ...
- MR execution in YARN
Overview YARN provides API not for application developers but for the great developers working on ne ...
- tendermint学习
怎么把两个节点变成验证节点 1. 两个节点分别启动 2. 两个节点同时把自己的公钥信息添加到对方的创始快配置文件中,总而言之,创始块一样 3. unsafe_reset_priv_validator ...
- Java容器之Iterator接口
Iterator 接口: 1. 所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象. 2. Iterator 对象称作迭代器,用以方便的 ...
- 项目UML设计(团队)
[团队信息] 团队项目: 小葵日记--主打记录与分享模式的日记app 队名:日不落战队 队员信息及贡献分比例: 短学号 名 本次作业博客链接 此次作业任务 贡献分配 备注 501 安琪 http:// ...
- error : Web 项目“RealEstate.Web”的 URL“http://localhost:20000”已配置为将 IIS 用作 Web 服务器,但是当前在 IIS Express W
error : Web 项目"RealEstate.Web"的 URL"http://localhost:20000"已配置为将 IIS 用作 Web 服务器 ...
- phpcms黄页,不能选择行业。解决办法
用phpcms黄页模块,发布产品的时候.不能选择 产品分类,点开之后,啥都没有,是空的. 这个是因为:js的问题. 解决办法:将 网站根目录的 js 文件中的两个文件,更换为 官方的两个js文件.即可 ...