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的更多相关文章

  1. exam9.3

    #   用  户  名  公园 计划 抽卡   总分  19 859乔屹 100 03:15:05 40 03:14:01   140 03:15:05 emm 怎么讲 T2我把自己优化掉了40分 优 ...

  2. 【Mysql优化】索引覆盖

    索引覆盖 是指 如果查询的列恰好是索引的一部分,那么查询只需要在索引文件上进行,不需要回行到磁盘再找数据.这种查询速度非常快,称为”索引覆盖”,比平时的查询少一次到磁盘读数据的操作.(索引正好覆盖到查 ...

  3. 【Mysql优化】索引碎片与维护

    在长期的数据更改过程中, 索引文件和数据文件,都将产生空洞,形成碎片.(不停的删除修改导致) 解决办法: (1)我们可以通过一个nop操作(不产生对数据实质影响的操作), 来修改表. 比如: 表的引擎 ...

  4. MySQL导出数据库、数据库表结构、存储过程及函数【用】

    一.导出数据库 我的mysql安装目录是D:\Program Files\MySQL\MySQL Server 5.5\bin\,导出文件预计放在D:\sql\ 在mysql的安装目录执行命令: my ...

  5. 【存储过程】MySQL存储过程/存储过程与自定义函数的区别

    ---------------------------存储过程-------------------- 语法: 创建存储过程: CREATE [definer = {user|current_user ...

随机推荐

  1. 微信小程序的页面跳转==编程式导航传参 和 标签的方法传参==以及如何过去传递过来的参数

    小程序导航传参接收传递过来的参数 在onload中 实例

  2. Markdown语法图文全面详解(转)

    基本语法参考    转自:https://blog.csdn.net/u014061630/article/details/81359144 更改字体.颜色.大小,设置文字背景色,调整图片大小设置居中 ...

  3. oracle_job进程相关学习测试

    Oracle cjq0进程测试 测试流程: .CJQ进程不存在 .模拟问题处理 .问题总结 一.问题现象 CJQ0进程不存在 [root@adg1 ~]# ps -ef|grep cjq root : ...

  4. SQL Server元数据查询

    原文:SQL Server元数据查询 1.查询触发器的信息 --查询触发器的信息 select name, --触发器名称 (select name from sys.objects where ob ...

  5. JQuery 文本框控制验证数字

    $("input[name=XUEFEN]").keypress(function(event) { var keyCode = event.which; if (keyCode ...

  6. win7用驱动精灵安装了bcm94352ac蓝牙驱动后还是不能用蓝牙的解决方法

    驱动精灵安装了驱动后,设备管理器处显示Bluetooth USB,但是没法用蓝牙,找不到蓝牙图标,后来在华硕官方下载了win7的Broadcom 蓝牙驱动程序装上之后就好了

  7. 每周分享五个 PyCharm 使用技巧(三)

    文章首发于 微信公众号:Python编程时光 PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. 一个每天都在使用的工具,如果能掌 ...

  8. SMARTY的简单实例写法

    访问页面main.php(后台页面) <?php include("../init.inc.php"); //引入入口文件 include("../DBDA.php ...

  9. arm-none-eabi/bin/ld: build/com.zubax.gnss.elf section `.text' will not fit in region `flash'

    出现如下错误: /arm-none-eabi/bin/ld: build/com.zubax.gnss.elf section `.text' will not fit in region `flas ...

  10. 使用browser-sync预览pandoc markdown???

    由于 pandoc markdown在sublime下面并不能很好的预览,因此可以直接 使用 pandoc build成html,然后借助下面的工具进行实时在浏览器里面预览 http://www.br ...