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 ...
随机推荐
- try except 异常捕获的方法、断言的使用
except as e中的'e'的作用总结 - 2puT - CSDN博客 Python使用try except处理程序异常的三种常用方法分析 Python3和Python2 异常处理except的不 ...
- jdk8新特性--函数式接口的使用
函数式接口的概念: 函数式接口的格式: 示例: 函数式接口的使用: 简化lambda表达式:
- nodeJs+vue安装教程详解 相信
相信很多朋友都在装node服务和安装vue的时候会遇到一些问题,下面为大家详细介绍node服务的安装以及vue的安装: 1.nodeJs官网下载版本(根据自己电脑的配置进行相应下载即可):默认安装路径 ...
- copy 合并
copy /b xxx.jpg + yyy.txt zzz.jpg /b 二进制 /a 文本
- MyBatis 常用词汇含义
JDBC:java Data Base Connection(Java与数据库连接): ORM:Object Relational Mapping(对象关系映射,简称ORM,或者O/RM,或者O/M ...
- js入门之DOM
一.理解Web API Web API Application Programming Interface 应用程序编程接口, 是一个预先定义好的函数和方法 目的是提供应用程序与开发人员基于某软件或硬 ...
- element-ui DatePicker 日期选择器 让结束日期大于开始日期
element-ui DatePicker 日期选择器 <el-date-picker v-model="addForm.startDate" type="dat ...
- CI,CD理解
一.什么是CI,CD 当我们在谈论现代的软件编译和发布流程的时候,经常会听到CI 和CD这样的缩写短语.CI很容易理解,就是持续集成. 但是CD既可以指代码持续交付,也可理解为代码持续部署.C ...
- CSS之简介及引入方式
一.css的来源 1994年哈坤·利提出了CSS的最初建议.而当时伯特·波斯(Bert Bos)正在设计一个名为Argo的浏览器,于是他们决定一起设计CSS.其实当时在互联网界已经有过一些统一样式表语 ...
- AD19新功能之Gloss Selected(修线)
一.强大的修线功能 鼠标从右下往左上框选线,然后按 tab 键,选中需要修的走线 然后执行 “Route”栏下 “Gloss Selected”命令进行修线: 二.循环至推模式 AD19默认为推挤模式 ...