数量积

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 389  Solved: 147
[Submit][Status][Discuss]

Description

神犇heheda最近得到了UOJ抱枕,蒟蒻yts1999想要玩。于是heheda给yts1999出了一道题:
一个长度为2n+2的整数数列 按照下式定义:
A0=0
A1=C
Ai+2=(Ai+1+Ai) Mod M (0<=i<=2*N)
现有n个平面向量v1…vn:
V1=(A2,A3),V2=(A4,A5)...Vn=(A2n,A2n+1)
集合S的定义如下:
 
其中"vi•vj"表示向量vi和vj的数量积。
求S集合中不同元素的个数是多少。答案对M取模。
heheda告诉yts1999,只要他做出了这道题,她就可以把抱枕借给他玩一会。然而yts1999实在是太弱了不会做,于是向你求助。

Input

输入数据包含一行三个整数C,M和n,分别表示a1的值,模数和平面向量的个数,每两个数之间用一个空格隔开。

Output

输出一行一个整数表示答案对M取模后的值。

Sample Input

4 5 3

Sample Output

2

HINT

数列为{0,4,4,3,2,0,2,2},v1=(4,3),v2=(2,0),v3=(2,2)。
v1•v2 mod M=3, v2•v3 mod M=4, v1•v3 mod M=4。
对于100%的数据,1≤C≤10^9,1≤M≤10^9,1≤n≤3*10^5
 

题解:对于这类类似菲波那切数列的数列,有一个重要结论f[1]*f[n+m+1]=f[n]*f[m]+f[n+1]*f[m+1] 
这不就是题目所要求的数量积吗?

 #include<cstring>
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<queue> #define N 1200007
#define ll long long
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-;ch=getchar();}
while(isdigit(ch)){x=(x<<)+(x<<)+ch-'';ch=getchar();}
return x*f;
} int m,n,tot,ans;
ll f[N],q[N]; int main()
{
f[]=read();m=read();n=read();n<<=;
if (m==) return puts(""),;
for (int i=;i<=n;i++)
{
f[i]=(f[i-]+f[i-])%m;
if ((i&)&&i>) q[++tot]=f[i]*f[]%m;
}
sort(q+,q+tot+);
for (int i=;i<=tot;i++)
if (q[i]!=q[i-]||i==) ans++;
ans%=m;
printf("%d",ans);
}
 

bzoj 4414 数量积 结论题的更多相关文章

  1. bzoj 2079: [Poi2010]Guilds——结论题

    Description Zy皇帝面临一个严峻的问题,两个互相抵触的贸易团体,YYD工会和FSR工会,他们在同一时间请求在王国各个城市开办自己的办事处.这里有n个城市,其中有一些以双向马路相连,这两个工 ...

  2. BZOJ 3903 反垄断 (最大流推的结论题)

    题目 中文题目,不解释: BZOJ传送门 分析 这道题BZOJ上也只有几个人过-奇怪了 下面是正解 原问题为一个二分图边染色问题.首先考虑最好情况.最理想情况的分配为:设一个点xxx的度为dgr(x) ...

  3. [BZOJ3609][Heoi2014]人人尽说江南好 结论题

    Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家), 最近他 想起了小时候在江南玩过的一个游戏.     在过去,人们是要 ...

  4. 【bzoj3997】[TJOI2015]组合数学 Dilworth定理结论题+dp

    题目描述 给出一个网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走.问至少走多少次才能将财宝捡完.此对此问题变形,假设每个格子中有好多财宝,而每一次经过一个格子至多只能捡走一块财宝,至少走 ...

  5. codeforces 1269D. Domino for Young (二分图证明/结论题)

    链接:https://codeforces.com/contest/1269/problem/D 题意:给一个不规则的网格,在上面放置多米诺骨牌,多米诺骨牌长度要么是1x2,要么是2x1大小,问最多放 ...

  6. SAM4E单片机之旅——24、使用DSP库求向量数量积

    DSP(Digital Signal Processing,数字信号处理)中会使用大量的数学运算.Cortex-M4中,配置了一些强大的部件,以提高DSP能力.同时CMSIS提供了一个DSP库,提供了 ...

  7. [codevs5578][咸鱼]tarjan/结论题

    5578 咸鱼  时间限制: 1 s  空间限制: 128000 KB   题目描述 Description 在广袤的正方形土地上有n条水平的河流和m条垂直的河流,发达的咸鱼家族在m*n个河流交叉点都 ...

  8. BZOJ_1367_[Baltic2004]sequence_结论题+可并堆

    BZOJ_1367_[Baltic2004]sequence_结论题+可并堆 Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 ...

  9. 【uoj#282】长度测量鸡 结论题

    题目描述 给出一个长度为 $\frac{n(n+1)}2$ 的直尺,要在 $0$ 和 $\frac{n(n+1)}2$ 之间选择 $n-1$ 个刻度,使得 $1\sim \frac{n(n+1)}2$ ...

随机推荐

  1. Python爬虫模拟登录带验证码网站

    问题分析: 1.爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 2.首先得明白 ...

  2. *转载 Tarjan有向图详解

    注意! 文章转自:https://www.cnblogs.com/liwenchi/p/7259306.html,如有造成任何侵权行为,请与我联系.我会在第一时间删除. 不过说实话,这大佬写的真的强, ...

  3. JQuery+ajax数据加载..........

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 彻底删除win10的 Windows Defender

    使用删除工具和一些教程,都无法删除,最后找到了这个: https://www.newasp.net/soft/351946.html 关闭掉服务后,在C盘全盘搜索,删除,完成了

  5. 面试中要注意的 3 个 JavaScript 问题

    JavaScript 是 所有现代浏览器 的官方语言.因此,各种语言的开发者面试中都会遇到 JavaScript 问题. 本文不讲最新的 JavaScript 库,通用开发实践,或任何新的 ES6 函 ...

  6. c#非界面线程控制控件

    private delegate void FlushCilent(); Invoke(new FlushCilent(databaseConnect));

  7. Alpha冲刺——第一天

    Alpha第一天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...

  8. (三)java字符串

    不可变字符串 Java没有字符串类型,而是提供了一个预定义类String. java中的字符串是不可变字符串,因此无法更改某一个字符串变量的内容. 优点:编译器可以让字符串共享.当复制一个字符串时,原 ...

  9. <Effective C++>读书摘要--Ctors、Dtors and Assignment Operators<二>

    <Item 9> Never call virtual functions during construction or destruction 1.you shouldn't call ...

  10. QWidget一生,从创建到销毁事件流

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QWidget一生,从创建到销毁事件流     本文地址:http://techieliang ...