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 [模 ...
随机推荐
- JavaScript的闭包和内存泄漏问题
闭包 http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html JavaScript中必须提到的功能最强大的抽象 ...
- 表单验证——JavaScript和Jquery版
1.轻量级的JavaScript表单验证 在应用中引用 validator.min.js 文件 <script type="text/javascript" src=&quo ...
- Oracle中使用Entity Framework 6.x Code-First方式开发
去年写过一篇EF的简单学习笔记,当时EF还不支持Oracle的Code-First开发模式,今天无意又看了下Oracle官网,发现EF6.X已经支持了,并且给出了二篇教程(英文版): 1.Using ...
- jboss eap 6.3 集群(cluster)配置
接上一篇继续,Domain模式解决了统一管理多台jboss的问题,今天我们来学习如何利用mod_cluster来实现负载均衡.容错. mod_cluster是jboss的一个开源集群模块(基于apac ...
- 牛X的CSS3
See the Pen Dot Wave by Rich Howell (@roborich) on CodePen
- Caffe学习系列(7):solver及其配置
solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 # caffe train --solver=*_slover ...
- Theano2.1.21-基础知识之theano中多核的支持
来自:http://deeplearning.net/software/theano/tutorial/multi_cores.html Multi cores support in Theano 一 ...
- 【分布式协调】之理解paxos
感叹一下 不得不说近几年国内软件行业发生了巨大的变化,之前几乎所有应用都围绕桌面展开,而近几年很多让人神魂颠倒的关键词一个接一个的映入眼帘:web2.0.移动应用.云计算.大数据.互联网的浪潮一波接着 ...
- [BZOJ2768][JLOI2010]冠军调查(最小割)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2768 分析: 如果一个点i认为是0,则连一条S->i,如果认为是1,则i-> ...
- matlab 画图中线型及颜色设置
matlab受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图 功能.本章主要介绍2维图形对象的生成函数及图形控制函数的使用方 法,还将 简单地介绍一些图形的修饰与标注函数及操作和控制MATLA ...