exam9.6&&7
emmm
改题稍紧张,以后几篇并一起写
9.6
(前十并没有参加本次考试)
于是我就rank8了
一道题一道题来
先说T1:
显然是一个高精度GCD,于是打算用计算器算一下时间复杂度
众所周知gcd是log的
于是...
按这样算显然会T对吧
所以我放弃了
但考后发现
计算器运算优先级锅了
其实是:
完全可过
P.S.鉴于高精取模并不好打,我yy出了多一个log的只用高精加&&减的做法
代码:
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;
#define int long long
char ch[105];
struct num{
int a[1005];
int opt;
friend num operator +(num a,num b)
{
num c;int k=0;
c.clear();
c.a[0]=max(a.a[0],b.a[0]);
/*cout<<"add:"<<endl;
a.out(),b.out();
cout<<a.a[0]<<" "<<b.a[0]<<endl;*/
for(int q=1;q<=c.a[0];q++)
{
c.a[q]=a.a[q]*(q<=a.a[0])+b.a[q]*(q<=b.a[0])+k;
k=c.a[q]/10;
c.a[q]%=10;
}
if(k) c.a[++c.a[0]]=k;
c.a[0]=100;
while(!c.a[c.a[0]]&&c.a[0]) c.a[0]--;
//cout<<"before pre:"<<endl;c.out();
//char ch=getchar();
c.pre();
//cout<<"after pre:"<<endl;c.out();
c.a[0]=100;
8
|
859乔屹 | 30
03:11:03
|
60
03:13:36
|
40
03:14:28
|
130
03:14:28
|
while(!c.a[c.a[0]]&&c.a[0]) c.a[0]--;
return c;
}
friend bool operator <(num a,num b)
{
if(a.opt<b.opt) return 1;
if(b.opt<a.opt) return 0;
int bo=0;
if(a.opt<0) a.change(),bo=-1;
if(b.opt<0) b.change();
if(a.a[0]>b.a[0]) return 0-bo;
if(a.a[0]<b.a[0]) return 1+bo;
for(int q=a.a[0];q;q--)
{
if(a.a[q]>b.a[q]) return 0-bo;
if(a.a[q]<b.a[q]) return 1+bo;
}
return 0;
}
friend bool operator >(num a,num b)
{return 1^(a<b);}
void pre()
{
//out();
for(int q=1;q<a[0];q++)
if(a[q]<0)
a[q+1]--,a[q]=10+a[q];
//char ch=getchar();
}
void change()
{
opt*=-1;
for(int q=1;q<=a[0];q++)
a[q]*=-1;
}
void clear(){memset(a,0,sizeof(a));opt=1;}
void get()
{
clear();
scanf("%s",ch);
a[0]=strlen(ch);
for(int q=0;q<a[0];q++)
a[q+1]=ch[a[0]-q-1]-'0';
}
void out()
{
for(int q=a[0];q;q--)
cout<<a[q];
cout<<endl;
}
}tmp,cmp,a,b,res[500];
void pre()
{
tmp.clear(),cmp.clear();
tmp.a[0]=1;
cmp.a[0]=cmp.a[1]=1;
}
num gcd(num a,num b)
{
num c;c.clear();
while(tmp<a)
{
int q=2;
if(a>b) c=a,a=b,b=c;
res[1]=a;
for(q=2;res[q-1]<b;q++)
{
res[q].clear();
res[q]=res[q-1]+res[q-1];
//res[q].out();
//char ch=getchar();
}
q--;
for(;q;q--)
if(b>res[q])
{
/*b.out();*/
res[q].change();
//cout<<"res"<<endl;
//res[q].out();
//cout<<"res"<<endl;
/*char ch=getchar();*/
b=b+res[q];
res[q].change();
}
// a.out();
// b.out();
if(a>b) c=a,a=b,b=c;
}
return b;
}
signed main()
{
//freopen("ans.in","w",stdout);
int qu;
cin>>qu;
pre();
for(int q=1;q<=qu;q++)
{
a.clear(),b.clear();
a.get(),b.get();
num now=gcd(a,b);
if((now<cmp||cmp<now))
puts("No");
else
puts("Yes");
}
}
好,接下来是T2:
对于n<=2000
$\Theta (n^2)$的暴力总是可以的
对于只有0\1的
$\Theta (n \log n)$
exam9.6&&7的更多相关文章
- exam9.3
# 用 户 名 公园 计划 抽卡 总分 19 859乔屹 100 03:15:05 40 03:14:01 140 03:15:05 emm 怎么讲 T2我把自己优化掉了40分 优 ...
- 【Mysql优化】索引覆盖
索引覆盖 是指 如果查询的列恰好是索引的一部分,那么查询只需要在索引文件上进行,不需要回行到磁盘再找数据.这种查询速度非常快,称为”索引覆盖”,比平时的查询少一次到磁盘读数据的操作.(索引正好覆盖到查 ...
- 【Mysql优化】索引碎片与维护
在长期的数据更改过程中, 索引文件和数据文件,都将产生空洞,形成碎片.(不停的删除修改导致) 解决办法: (1)我们可以通过一个nop操作(不产生对数据实质影响的操作), 来修改表. 比如: 表的引擎 ...
- MySQL导出数据库、数据库表结构、存储过程及函数【用】
一.导出数据库 我的mysql安装目录是D:\Program Files\MySQL\MySQL Server 5.5\bin\,导出文件预计放在D:\sql\ 在mysql的安装目录执行命令: my ...
- 【存储过程】MySQL存储过程/存储过程与自定义函数的区别
---------------------------存储过程-------------------- 语法: 创建存储过程: CREATE [definer = {user|current_user ...
随机推荐
- 【Linux】一步一步学Linux——Linux发展史(01)
目录 00. 目录 01. Linux概述 02. Linux简史 03. Linux主要特性 04. Linux之父 05. Linux相关术语 06. Linux其它 07. Linux应用领域 ...
- 史上最全最新Java面试题合集一(附答案)
下面小编整理了本套java面试题全集,分享给大家,希望对大家的java学习和就业面试有所帮助. 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征 ...
- Effective Java 读书笔记(四):泛型
1 不要使用原始类型 (1)术语 术语 例子 参数化类型(Parameterized type) List<String> 实际类型参数(Actual type parameter) St ...
- Pytorch 1.0升级到Pytorch 1.1.0
Pytorch 1.0Pytorch 1.0于2018-12-8发布,详见https://github.com/pytorch/pytorch/releases/tag/v1.0.0 主要更新JIT全 ...
- navicate的使用及用Python操作数据额库
Navicat使用 下载地址:<https://pan.baidu.com/s/1bpo5mqj> Navicat是基于mysql操作的,所以能否自主完成一些练习,就能够运用Navicat ...
- ArduPilot存储管理 Storage EEPROM Flash
AP_HAL::Storage 此类可以应用于所有平台.PX4v1平台支持8k的EEPROM,Pixhawk平台支持16k的FRAM铁电存储器 存储大小定义:libraries/AP_HAL/AP_H ...
- java线程中如何使用spring依赖注入
实现一个线程继承了Thread或实现Runnable接口,想在run方法中使用spring依赖注入(操作数据库),此时报错为空指针,就是说没有注入进来. 实验了几种方式,分别说一下优缺点. 1:写了工 ...
- MySQL常见interview
mysql支持的存储引擎,以及各自区别 常用的有myisam,innodb,bdb myisam是mysql默认存储引擎:不支持事务和外键,访问速度快,对事物完整性没有要求或者以select.inse ...
- CentOS7安装CDH 第八章:CDH中对服务和机器的添加与删除操作
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- Django中实现单表和多表接口
基础接口 序列化:course/serializers.py from rest_framework import serializers from .models import CourseCate ...