4547: Hdu5171 小奇的集合

题目:传送门


题解:

   做一波大佬们的坑...ORZ

   不得不说,我觉得矩阵很简单啊,就一个3*3的(直接看代码吧)

   给个递推柿纸:f[i]=f[i-1]+max1+max2

   因为题目保证答案非负,那么一般情况下,肯定是将max1+max2加入原数列啊

   兴高采烈的一顿乱水,nice!一WA

   md被CC无情嘲笑...

   再看一波题目...abs(a[i])<=10^5???

   有负数?!

   woc那如果max2<0那么我不就GG???

   好的又是一顿乱水,直接暴力将max2变为正数...

   nice!二WA!

   对拍!mmp。。。

   一千年过去了..."仍无差异"

   %一发企鹅,发现他的sum加的时候先加了一个mod!?

   woc求和时加过了mod之后来个很小的负数我又挂了...然后小心翼翼的改了再提交

   终于...A了(毒瘤!!!)

  


代码:

 #include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#define mod 10000007
using namespace std;
typedef long long LL;
struct node
{
LL m[][];
node(){memset(m,,sizeof(m));}
}A,B,C,pre;
LL n,k,tt,max1,max2;
LL a[];
node multi(node a,node b)
{
node c;
for(int i=;i<=;i++)
for(int j=;j<=;j++)
for(int k=;k<=;k++)
c.m[i][j]=(c.m[i][j]+a.m[i][k]*b.m[k][j]%mod)%mod;
return c;
}
node sol(LL b)
{
node ans;
for(int i=;i<=;i++)ans.m[i][i]=;
while(b)
{
if(b%==)ans=multi(ans,pre);
pre=multi(pre,pre);b/=;
}
return ans;
}
int main()
{
freopen("4547.in","r",stdin);
freopen("ans.out","w",stdout);
scanf("%lld%lld",&n,&k);LL sum=;
for(int i=;i<=n;i++)scanf("%lld",&a[i]),sum=(sum+a[i]+mod)%mod;
sort(a+,a+n+);max1=a[n];max2=a[n-];
if(max2< && max1>)
{
tt=;
while(max2<)
{
max2+=max1;
sum=(sum+max2+mod)%mod;
tt++;
}
if(max2>max1)swap(max2,max1);
}
pre.m[][]=pre.m[][]=pre.m[][]=pre.m[][]=pre.m[][]=pre.m[][]=;
A=sol(k-tt);
B.m[][]=sum,B.m[][]=max1,B.m[][]=max2;
C=multi(A,B);
printf("%lld\n",C.m[][]%mod);
return ;
}

最新文章

  1. python 抽象类、抽象方法、接口、依赖注入、SOLIP
  2. discuz /faq.php SQL Injection Vul
  3. POJ 2386 Lake Counting(深搜)
  4. 字符串转json
  5. 【FFT】专题总结
  6. SETLOCAL
  7. 从Android源码的角度分析Binder机制
  8. uva11401
  9. 【java】java.util.Arrays类常用方法
  10. CASE 表达式
  11. Openlayer 3加载本地ArcGIS切片
  12. python联系-迭代器
  13. 如何减少UI设计师产品与前端工程师的沟通成本
  14. linux 常见基础知识(此文章将会在整个linux学习过程中,不断添加)
  15. ios实例开发精品文章推荐(8.12)11个处理触摸事件和多点触摸的JS库
  16. SpringCloud学习:Eureka、Ribbon和Feign
  17. Ubuntu双系统安装过程中遇到的问题
  18. (转)RISC-V结构逻辑图
  19. datasnap 上传/下载大文件(本Demo以图传片文件为例)
  20. beep版千与千寻主题曲(转载自Ice_watermelon233)

热门文章

  1. 希尔加密算法(湖南师范大学第六届大学生计算机程序设计竞赛)hnuoj11552
  2. 基于FPGA的VGA可移植模块终极设计
  3. 超高性能管线式HTTP请求(实践&#183;原理&#183;实现)
  4. When Cyber Security Meets Machine Learning 机器学习 安全分析 对于安全领域的总结很有用 看未来演进方向
  5. MVC/MVP/MVVM区别——MVVM就是angular,视图和数据双向绑定
  6. ubuntu下无法将iNode绑定到侧边栏的解决办法
  7. vs的任务列表
  8. 依赖注入Unity框架
  9. struts2学习之基础笔记1
  10. Django开发之路 二(django的models表查询)