昨天的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 做题笔记的更多相关文章

  1. bc#27做题笔记

    rating掉的哗哗的T^T 1001:水题 1002:水题,但是题目看错了+手速太捉急  看一下样例解释就会知道,实际上第i个人只能坐第i辆公交车.= =好反人类 这样的话题目就简单了许多..... ...

  2. SDOI2017 R1做题笔记

    SDOI2017 R1做题笔记 梦想还是要有的,万一哪天就做完了呢? 也就是说现在还没做完. 哈哈哈我竟然做完了-2019.3.29 20:30

  3. C语言程序设计做题笔记之C语言基础知识(下)

    C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...

  4. C语言程序设计做题笔记之C语言基础知识(上)

    C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...

  5. SDOI2014 R1做题笔记

    SDOI2014 R1做题笔记 经过很久很久的时间,shzr又做完了SDOI2014一轮的题目. 但是我不想写做题笔记(

  6. SDOI2016 R1做题笔记

    SDOI2016 R1做题笔记 经过很久很久的时间,shzr终于做完了SDOI2016一轮的题目. 其实没想到竟然是2016年的题目先做完,因为14年的六个题很早就做了四个了,但是后两个有点开不动.. ...

  7. LCT做题笔记

    最近几天打算认真复习LCT,毕竟以前只会板子.正好也可以学点新的用法,这里就用来写做题笔记吧.这个分类比较混乱,主要看感觉,不一定对: 维护森林的LCT 就是最普通,最一般那种的LCT啦.这类题目往往 ...

  8. java做题笔记

    java做题笔记 1. 初始化过程是这样的: 1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化: 2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序 ...

  9. SAM 做题笔记(各种技巧,持续更新,SA)

    SAM 感性瞎扯. 这里是 SAM 做题笔记. 本来是在一篇随笔里面,然后 Latex 太多加载不过来就分成了两篇. 标 * 的是推荐一做的题目. trick 是我总结的技巧. I. P3804 [模 ...

随机推荐

  1. H2 Database入门

    H2 Database做为轻量级的内嵌数据库,功能十分强大,而且运行时只需要一个jar包即可,下表是官网的描述: 更详细的对比见官网页面: http://www.h2database.com/html ...

  2. 通过js动态生成页面表格

    var redlineTemplateP = $(".redlineDataList"); for (var index in detailArraryLists.rows){ v ...

  3. Messenger

    Messenger Mvvm提倡View和ViewModel的分离,View只负责数据的显示,业务逻辑都尽可能放到ViewModel中, 保持View.xaml.cs中的简洁(没有任何代码,除了构造函 ...

  4. 从idea上通过路径去导入项目

    这里我用git来演示导入. 首先确定你要导入项目的路径.(我这里用码云路径图片做演示) 1.选择 2.填写

  5. Nodejs进阶:基于express+multer的文件上传

    关于作者 程序猿小卡,前腾讯IMWEB团队成员,阿里云栖社区专家博主.欢迎加入 Express前端交流群(197339705). 正在填坑:<Nodejs学习笔记> / <Expre ...

  6. 理解JavaScript的作用域链

    上一篇文章中介绍了Execution Context中的三个重要部分:VO/AO,scope chain和this,并详细的介绍了VO/AO在JavaScript代码执行中的表现. 本文就看看Exec ...

  7. RHEL每天定时备份Oracle

    步骤: (1)创建脚本文件bak_112.sh,内容如下(自动按当前日期备份数据库): #!/bin/sh export ORACLE_BASE=/u01/app/oracle; ORACLE_HOM ...

  8. C#实现每隔一段时间执行代码(多线程)

    总结以下三种方法,实现c#每隔一段时间执行代码: 方法一:调用线程执行方法,在方法中实现死循环,每个循环Sleep设定时间: 方法二:使用System.Timers.Timer类: 方法三:使用Sys ...

  9. jquery slide使用总结

    .slideUp([duration][,complete])--目标元素向上滑入隐藏: .slideDown([duration][,complete])--目标元素向下滑出显示: .slideTo ...

  10. Java--剑指offer(9)

    41.输出所有和为S的连续正数序列.序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序 import java.util.ArrayList; public class Solution { ...