停课day2
感觉今天好颓啊,我才把昨晚那五道题a了,(但我明明一直在学啊,为啥这么慢,难道是我太笨了?)
闲话少叙,先说做法
问题 A: C Looooops
题目描述
对于C的for(i=A ; i!=B ;i +=C)循环语句,给出A,B,C和k(k表示变量是在k进制下的无符号整数),判断循环次数,不能终止输出"FOREVER".
输入
输出
样例输入
3 3 2 16
3 7 2 16
7 3 2 16
3 4 2 16
0 0 0 0
样例输出
0
2
32766
FOREVER
提示
ll exgcd(ll a,ll b,ll &x,ll &y){
if(b==){
x=;y=;return a;
}
ll ans=exgcd(b,a%b,x,y);
ll t=x;
x=y;
y=t-a/b*y;
return ans;
}
ll cal(ll a,ll b,ll c){
ll x,y;
ll gcd=exgcd(a,b,x,y);
if(c%gcd)return -;
x*=c/gcd;
b/=gcd;
b=abs(b);
ll ans=x%b;
while(ans<=)ans+=b;
return ans;
}
主体代码
第二题是培训的时候的题,数据稍微加强。不说了就。
问题 C: 数论好题
题目描述
给定A,B,求A^B的所有因数的和,再MOD 9901
输入
输出
样例输入
2 3
样例输出
15
提示
#define ll long long
#define mod 9901
ll power(ll a,ll b){
if(b==)return ;
else if(b&)return power(a*a%mod,b>>)*a%mod;
else return power(a*a%mod,b>>)%mod;
}
int p[],cnt,f[];
void getp(ll m){
f[]=;
for(int i=;i<=sqrt(m);i++){
if(!f[i])p[++cnt]=i;
for(int j=i+;i*j<=sqrt(m);j++){
f[i*j]=;
}
}
}
int main(){
ll a,b;
int k=;
cin>>a>>b;
getp(a);ll ans=,pc=;
for(int i=;i<=cnt;i++){
if(a%p[i]==){
while(a%p[i]==){
pc++;a/=p[i];
}
pc*=b;
//pc%=(mod-1);
ans=(ans*(power(p[i],pc+)-)*power(p[i]-,mod-))%mod;
}
pc=;
}
if(a!=){
ans=(ans*(power(a,b+)-)*power(a-,mod-))%mod;
}
问题 E: 数论good
题目描述
输入
输出
样例输入
4 2
样例输出
2048
提示
ll crt(){
ll m=;
ll x,y,d,ans=;
for(int i=;i<=;i++)m*=w[i];
for(int i=;i<=;i++){
d=m/w[i];
exgcd(d,w[i],x,y);
ans=(ans+d*a[i]*x)%m;
//cout<<d<<endl;
}
while(ans<=)ans+=m;
return ans;
}
问题 D: [SDOI2009]SuperGCD
题目描述
Sheng bill有着惊人的心算能力,甚至能用大脑计算出两个巨大的数的GCD(最大公约 数)!因此他经常和别人比赛计算GCD。有一天Sheng bill很嚣张地找到了你,并要求和你比 赛,但是输给Sheng bill岂不是很丢脸!所以你决定写一个程序来教训他。
输入
共两行: 第一行:一个数A。 第二行:一个数B。
输出
一行,表示A和B的最大公约数。
样例输入
12
54
样例输出
6
提示
对于20%的数据,0 < A , B ≤ 10 ^ 18。
对于100%的数据,0 < A , B ≤ 10 ^ 10000。
这道恶心的高精度题恶心了我好久,最后发现读入错了。。。压位的时候要注意第一位要特判。
GCD(A,B)=2GCD(A/2,B/2)
GCD(A,B)=GCD(A/2,B)=GCD(A,B/2)
GCD(A,B)=GCD(A-B,B)
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<queue>
using namespace std;
//unsigned long long a1[1002],b1[1002],ans=0;int k=1,l=1;long long mod=10000000000;
#define ll long long
#define mod 1000000000ll
ll ans=,k=,l=;
ll a1[],b1[];
bool pd(){
int i;
for(i=;i<=max(l,k);i++){
if(a1[i]!=b1[i])return ;
}
return ;
}
void jian(){
int i=;
while(i<=l||i<=k){
if(a1[i]<b1[i]){
a1[i]+=mod;
a1[i+]--;
}
a1[i]-=b1[i];
i++;
}
}
void diva(){
for(int i=k;i>;i--){
a1[i-]+=(a1[i]%)*mod;
a1[i]/=;
}
a1[]/=; }
void divb(){
for(int i=l;i>;i--){
b1[i-]+=(b1[i]%)*mod;
b1[i]/=;
}
b1[]/=;
}
void gcd(){
if(pd())return ;
while(a1[]%==){diva();}
while(b1[]%==){divb();}
if(pd())return ;
while(a1[k]==)k--;
while(b1[l]==)l--;
int i=max(k,l);
while(a1[i]==b1[i])i--;
if(a1[i]>b1[i])jian();
else {
for(;i>=;i--)swap(a1[i],b1[i]);swap(k,l);jian();}
gcd();
}
int main(){
char a[],b[];
scanf("%s%s",a,b);
int lena=strlen(a);
int lenb=strlen(b);
//memset(a1,0,sizeof(a1));
//memset(b1,0,sizeof(b1));
for(int i=lena-,t=;i>=;i--,t*=){
if((lena-i-)%==&&lena-i-){
k++;t=; }
ll x=a[i]-'';
a1[k]+=x*t;
} for(int i=lenb-,t=;i>=;i--,t*=){
if((lenb-i-)%==&&lenb-i-){
l++;t=; }
ll x=b[i]-'';
b1[l]+=x*t;
}
//for(int i=l;i>=1;i--)cout<<b1[i];
while(a1[]%==&&b1[]%==){
diva();
divb();
ans++;
} gcd();
for(int i=;i<=ans;i++){
for(int j=k;j>=;j--){
a1[j]*=;
a1[j+]+=a1[j]/mod;
a1[j]%=mod;
}
if(a1[k+]>)k++;}
while(a1[k]==)k--;
cout<<a1[k];
k--;
for(;k>=;k--)printf("%09d",a1[k]); return ;
}
停课day2的更多相关文章
- tricks - 思维
编辑 目录 tricks 系列 随机的性质 bitmask 建图 最基本的 黑白染色 Kruskal重构树 并查集维护值域 带根号的数三元环 根号分治 调和级数哈希 多属性哈希 时光倒流 时光反复横跳 ...
- 考前停课集训 Day2 非
因为太长了 所以一天一天分开发 Day2 昨天晚上没开黑车 没脱衣服就睡了 可能是我难受了…… 新的一天. 早上好. 我没去晨跑,早上先和团长集合了,没看见rkbudlo来 于是就先吃饭了 去机房的时 ...
- NOIP2017+停课总结
注意 此文章禁止一切含虚伪内容的评论,违者删除评论 其删除解释权归博主所有 Part1 论yyb NOIP 如何炸裂 前言 离NOIP已有三个星期,忘却的救主快要降临了吧,我正有写一篇总结的必要了.. ...
- ZJOI2019一轮停课刷题记录
Preface 菜鸡HL终于狗来了他的省选停课,这次的时间很长,暂定停到一试结束,不过有机会二试的话还是可以搞到4月了 这段时间的学习就变得量大而且杂了,一般以刷薄弱的知识点和补一些新的奇怪技巧为主. ...
- NOIp2018集训test-10-6/test-10-7 (联考五day1/day2)
昨天考完月考,明天初赛,dcoi2017级今天终于开始停课准备noip了,大概没有比本弱校停课更晚的学校了吧.本来就够菜了,怕是要凉透哦. DAY1 T1石头剪刀布 据说爆搜随便做,但是我觉得我的O( ...
- 【从零开始学BPM,Day2】默认表单开发
[课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
- day2
三级菜单: ))))))))))] last_levels.pop() ]]]]]]]]:] information = : ch = msvcrt.getch() ][][: : password= ...
- java day2一个模拟双色球的代码
package day2; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt ...
随机推荐
- 软件的按契约设计(DbC---Design by Contract)
一.DbC基本概念 DbC的思想源于商业活动中商家和用户的行为(义务和利益关系),双方都要遵守一个契约(合同),交易才能完成. 商家与用户的契约关系如下: 1. 商家必须提供某种产品(义务),并有权获 ...
- 数据分析处理库Pandas——索引进阶
Series结构 筛选数据 指定值 备注:查找出指定数值的索引和数值. 逻辑运算 备注:查找出值大于2的数据. 复合索引 DataFrame结构 显示指定列 筛选显示 备注:值小于0的显示原值,否则显 ...
- Leecode刷题之旅-C语言/python-136只出现一次的数字
/* * @lc app=leetcode.cn id=136 lang=c * * [136] 只出现一次的数字 * * https://leetcode-cn.com/problems/singl ...
- 洛谷(P1006 传纸条)
题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个mm行nn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运 ...
- 集成运放输入电压范围指标参数Uicmax,Uidmax
图中Uicmax最大共模输入电压:是运放能正常工作下的最大输入电压: Uidmax最大差模输入电压:是运放要损坏的最大输入电压
- IDEA常用操作(一)
1.视图的调整 左下右的侧边栏如何关闭?——右击选择remove from sidebar 面板上(左下右)的导航栏视图如何隐藏——可以在左下角悬停显示,单击隐藏/开启侧边栏 想打开其它视图怎么办?— ...
- Mysql双主操作
MySQL双主(主主)架构方案 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果 ...
- ubuntu 关闭触控板
第一种: 1 sudo rmmod psmouse 这个是禁用的 2 sudo modprobe psmouse 这个是启用的 这个方法很便捷,但是会将触点和触板都禁用了,一般还是希望保持触点是 ...
- C++学习013多态
何为多态 面向对象最要的特征之一就是多态,而纯虚函数是实现多态的主要方式.它可以提供一个通过用的接口,同样调用一个方法, 由于运算对象不同,方法也不同,这也就是所谓的动态绑定. #include &l ...
- Sersync实时备份服务部署实践