bc#29 做题笔记
昨天的bc被坑惨了= =
本来能涨rating的大好机会又浪费了。。。大号已弃号
A:第一反应是高精度,结果模板找不到了= =,然后现学现卖拍了个java的BigInteger+快速幂,调了好半天不说还TLE。貌似这题就在卡java
实际上尼玛等号两边取log不就完了么。。。
卒
B:A题调了半天,开始做B的时候已经没多少时间了。。。
找出了斐波那契数列+前缀和的规律,结果把用矩阵快速幂求斐波那契前n项和的那个梗又忘了
最后out of submit time
卒
事实证明还是要多做成套的题,这样才能发现很多平时难以察觉到的问题。
-------------------------------------------------
补上AC Code:
A:高你妹妹的高精度
#include <iostream>
#include <cstdio>
#include <cmath>
#define eps 1e-8
using namespace std; int fcmp(double a,double b)
{
double tm=fabs(a-b);
if (tm<eps) return ; //a==b
else
return a<b?-:;
} int a,b,c,d; int main()
{
while(~scanf("%d%d%d%d",&a,&b,&c,&d))
{
double aa=log(a),cc=log(c);
aa=aa*b; cc=cc*d;
switch (fcmp(aa,cc))
{
case :printf("=\n");
break;
case -:printf("<\n");
break;
case :printf(">\n");
break;
}
} return ;
}
B:事实证明即使只有三组数据也可能出现cin TLE而scanf AC的情况= =
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <vector>
using namespace std;
#define ULL long long
#define MOD 10000007 ULL ans,mx1,mx2;
ULL n,k,x;
typedef vector<ULL> vec;
typedef vector<vec> mat;
int a[]; mat mul(mat &A,mat &B) //return A*B
{
mat C(A.size(),vec(B[].size()));
for (int i=;i<(int)A.size();i++)
{
for (int k=;k<(int)B.size();k++)
{
for (int j=;j<(int)B[].size();j++)
{
C[i][j]=(C[i][j]+A[i][k]*B[k][j])%MOD;
}
}
}
return C;
} mat m_pow(mat A,int m) //return A^m
{
mat B(A.size(),vec(A.size()));
for (int i=;i<(int)A.size();i++)
B[i][i]=;
while (m>)
{
if (m&) B=mul(B,A);
A=mul(A,A);
m>>=;
}
return B;
} int main()
{ //while (cin>>n>>k)
while (~scanf("%d%d",&n,&k))
{
mat AA(,vec());
mat A(,vec());
mat B(,vec());
mat C(,vec());
mat D(,vec());
mat T(,vec());
T[][]=; T[][]=; T[][]=;
A[][]=; A[][]=; A[][]=;
A[][]=; A[][]=; A[][]=;
A[][]=; A[][]=; A[][]=;
AA=A;
A=m_pow(A,k-);
C=mul(A,T);
B=mul(A,AA);
//B=m_pow(B,k-1);
D=mul(B,T);
ULL FK=C[][],FKK=D[][]-;
if (k==) {FK=; FKK=;}
if (k==) {FK=; FKK=;}
//cout<<FK<<" -- "<<FKK<<endl; /*
LL fk=1,fkk=2,FK=2,FKK=4;
for (int i=3;i<=k;i++)
{
//fk:f[k] fkk:f[k+1]
LL tmp=fk+fkk;
fk=fkk; fkk=tmp;
fk=fk%MOD;
fkk=fkk%MOD;
FK+=fk;
FKK=FK+fkk;
FK=FK%MOD;
FKK=FKK%MOD;
}
FKK-=1; if (FKK<0) FKK+=MOD;
*/ ans=;
mx1=; mx2=;
for (int i=;i<=n;i++)
{
cin>>x;
ans+=x;
if (x>mx1)
{
mx2=mx1;
mx1=x;
}
else if ((x<=mx1)&&(x>mx2))
{
mx2=x;
}
}
/*
for (int i=1;i<=n;i++)
{
cin>>a[i];
ans+=a[i];
}
sort(a+1,a+n+1);
mx1=a[n]; mx2=a[n-1];
*/ //cout<<mx1<<" "<<mx2<<" = "<<ans<<endl;
/*
for (int i=1;i<=k;i++)
{
ans=ans+mx1+mx2;
ans=ans%MOD;
LL tmp=mx1;
mx1=mx1+mx2;
mx2=tmp;
}
*/
//cout<<ans<<" - "<<FK<<" "<<FKK<<endl;
mx1=mx1*FKK; mx1=mx1%MOD;
mx2=mx2*FK; mx2=mx2%MOD;
ans=ans+mx1+mx2;
ans=ans%MOD;
//cout<<ans<<endl;
printf("%I64d\n",ans);
}
return ;
}
bc#29 做题笔记的更多相关文章
- bc#27做题笔记
rating掉的哗哗的T^T 1001:水题 1002:水题,但是题目看错了+手速太捉急 看一下样例解释就会知道,实际上第i个人只能坐第i辆公交车.= =好反人类 这样的话题目就简单了许多..... ...
- SDOI2017 R1做题笔记
SDOI2017 R1做题笔记 梦想还是要有的,万一哪天就做完了呢? 也就是说现在还没做完. 哈哈哈我竟然做完了-2019.3.29 20:30
- C语言程序设计做题笔记之C语言基础知识(下)
C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...
- C语言程序设计做题笔记之C语言基础知识(上)
C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...
- SDOI2014 R1做题笔记
SDOI2014 R1做题笔记 经过很久很久的时间,shzr又做完了SDOI2014一轮的题目. 但是我不想写做题笔记(
- SDOI2016 R1做题笔记
SDOI2016 R1做题笔记 经过很久很久的时间,shzr终于做完了SDOI2016一轮的题目. 其实没想到竟然是2016年的题目先做完,因为14年的六个题很早就做了四个了,但是后两个有点开不动.. ...
- LCT做题笔记
最近几天打算认真复习LCT,毕竟以前只会板子.正好也可以学点新的用法,这里就用来写做题笔记吧.这个分类比较混乱,主要看感觉,不一定对: 维护森林的LCT 就是最普通,最一般那种的LCT啦.这类题目往往 ...
- java做题笔记
java做题笔记 1. 初始化过程是这样的: 1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化: 2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序 ...
- SAM 做题笔记(各种技巧,持续更新,SA)
SAM 感性瞎扯. 这里是 SAM 做题笔记. 本来是在一篇随笔里面,然后 Latex 太多加载不过来就分成了两篇. 标 * 的是推荐一做的题目. trick 是我总结的技巧. I. P3804 [模 ...
随机推荐
- Core Web API上使用Swagger提供API文档
在ASP.NET Core Web API上使用Swagger提供API文档 我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的AP ...
- DefaultFilesMiddleware中间件如何显示默认页面
DefaultFilesMiddleware中间件如何显示默认页面 DefaultFilesMiddleware中间件的目的在于将目标目录下的默认文件作为响应内容.我们知道,如果直接请求的就是这个默认 ...
- noi题库(noi.openjudge.cn) 1.9编程基础之顺序查找T01——T05
T01 查找特定元素的值 描述 在一个序列(下标从1开始)中查找一个给定的值,输出第一次出现的位置. 输入 第一行包含一个正整数n,表示序列中元素个数.1 <= n <= 10000.第二 ...
- mac上开启ftp
开启 sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist 关闭 sudo -s launchctl unload -w ...
- 如何重现难以重现的bug
生活中有这么一种现象:如果你关注某些东西,它就会经常出现在你眼前,例如一个不出名的歌手的名字,一种动物的卡通形象,某个非常专业的术语,等等等等.这种现象也叫做“孕妇效应”.还有类似的一种效应叫做“视网 ...
- 关于lazyload插件的一些笔记
Lazy Load Plugin for jQuery 需要引入 jQuery,兼容各种 IE,适合 PC 端使用.详细 API 可以参考 http://www.appelsiini.net/proj ...
- ASP.NET 小白从零开始建站简易教程 (一)域名、虚拟主机、FTP上传文件
只考虑性价比,纯新手实验无备案.跟着步骤走半小时即可收获独立的个人网站一枚! 我的实验站 http://www.bearlab.site/ ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄ 目前总价花费86元(域名加虚 ...
- denounce函数:Javascript中如何应对高频触发事件
在DOM Event的世界中,以scroll.resize.mouseover等为代表的高频触发事件显得有些与众不同.通常,DOM事件只有在明确的时间点才会被触发,比如被点击,比如XMLHttpReq ...
- 备忘:hibernate, logback, slf4j实际应用一例
用hibernate写一些简单的数据库的Java应用.主要是温习一下.之前弄过的一些都忘了.发现还是得记下来,不然很快就忘. 1. Eclipse版本,用Juno, J2EE版本.最好下载zip版本的 ...
- 基于FPGA的通信信号源的设计
通信信号源设计原理 通过设计一个DDS信号源,然后将该信号作为载波信号,再对基带信号进行2ASK.2FSK.2PSK.2DPSK调制,进而产生多种通信信号. 设计框图如下: 将PN序列进行2ASK.2 ...