[CF914D]Sum the Fibonacci】的更多相关文章

题目   点这里看题目. 分析   我们先放宽条件,重新定义五元组\((a,b,c,d,e)\)如下:   1.\(1\le a,b,c,d,e\le n\).   2.\(s_a\&s_b=1\).   并且设\(v(a,b,c,d,e)=(s_a|s_b)\&s_c\&(s_d\oplus s_e)\).(这里的\(\oplus\)指代异或,下同)   于是乎答案可以变成: \[\begin{aligned} &\sum_{p}\ \sum_{v(a,b,c,d,e)=…
[CF914G]Sum the Fibonacci 题解:给你一个长度为n的数组s.定义五元组(a,b,c,d,e)是合法的当且仅当: 1. $1\le a,b,c,d,e\le n$2. $(s_a|s_b) \& s_c \& (s_d $^$ s_e)=2^i$,i是某个整数3. $s_a \& s_b=0$ 求$\sum f(s_a|s_b) * f(s_c) * f(s_d $^$ s_e)$,f是斐波那契数列,对于所有合法的五元组(a,b,c,d,e).答案模$10^9…
CF914G Sum the Fibonacci(FWT,FST) Luogu 题解时间 一堆FWT和FST缝合而来的丑陋产物. 对 $ cnt[s_{a}] $ 和 $ cnt[s_{b}] $ 求FST,对 $ cnt[s_{d}] $ 和 $ cnt[s_{e}] $ 求异或卷积,然后对 $ cnt[ s_{ a }| s_{ b } ] \times f[ s_{ a }| s_{ b } ] $ , $ cnt[ s_{ c } ] \times f[ s_{ c } ] $ , $…
题意:给一个数组s,求\(f(s_a | s_b) * f(s_c) * f(s_d \oplus s_e)\),f是斐波那契数列,而且要满足\(s_a\&s_b==0\),\((s_a | s_b)\&s_c\&(s_d \oplus s_e)=2^{i}\) 题解:先求\(A_k=f(k)*\sum_{i|j==k\&\&i\&j==0}s_a*s_b\),明显是个子集卷积,在求出\(B_k=f(k)*s_k\),\(C_k=f(k)*\sum_{i \…
题目描述 给出一个长度为 $n$ 的序列 $\{s\}$ ,对于所有满足以下条件的五元组 $(a,b,c,d,e)$ : $1\le a,b,c,d,e\le n$ : $(s_a|s_b)\&s_c\&(s_d\text{^}s_e)=2^i$ ,其中 $i$ 为非负整数 : $s_a\&s_b=0$ . 求 $f(s_a|s_b)\times f(s_c)\times f(s_d\text{^}s_e)$ 的和模 $10^9+7$,其中 $f(i)$ 表示斐波那契数列的第 $i…
题目大意:给定一个长为$n$($n\leq 10^6$)的序列S,定义一个合法的五元组$(a,b,c,d,e)$合法当且仅当 $$ ( S_a \mid S_b ) and S_c and ( S_d \bigotimes S_e ) = 2^k $$ $$ S_a and S_b = 0 $$ 对于所有的合法的五元组,求 $ \sum_{合法(a,b,c,d,e)}\  F( S_a \mid S_b ) \times F( S_c ) \times F( S_d \bigotimes S_e…
题目:http://codeforces.com/contest/914/problem/G 其实就是把各种都用子集卷积和FWT卷起来算即可: 注意乘 Fibonacci 数组的位置: 子集卷积时不能一边做一边更新卷积的数组! 代码如下: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; int rd() { ,f=; cha…
题目传送门 题目大意 给出\(n,s_{1,2,...,n}\),定义一个五元组\((a,b,c,d,e)\)合法当且仅当: \[1\le a,b,c,d,e\le n \] \[(s_a\vee s_b)\wedge s_c \wedge (s_d\oplus s_e)=2^i,i\in \mathbb{Z} \] \[s_a\wedge s_b=0 \] 求出对于所有合法的五元组\((a,b,c,d,e)\): \[\sum f(s_a\vee s_b)f(s_c)f(s_d\oplus s…
传送门 一道良心的练习FWT和子集卷积的板子-- 具体来说就是先把所有满足\(s_a \& s_b = 0\)的\(s_a \mid s_b\)的值用子集卷积算出来,将所有\(s_a \oplus s_b\)用xor卷积算出来,把斐波那契数代进去,然后将三个数组and卷积,最后取\(2^i (i \in Z)\)的位置的答案的和 #include<bits/stdc++.h> //this code is written by Itst using namespace std; int…
解:发现我们对a和b做一个集合卷积,对d和e做一个^FWT,然后把这三个全部对位乘上斐波那契数,然后做&FWT就行了. #include <bits/stdc++.h> , MO = 1e9 + , inv2 = (MO + ) / ; ][N], e[][N]; inline void FWT_or(int *a, int n, int f) { ; len < n; len <<= ) { ; i < n; i += (len << )) { ;…
FWT大杂烩.跟着模拟做很多次FWT即可. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define N (1<<17) #define P 1000000007 in…
题目:http://codeforces.com/contest/914/problem/G 第一个括号可以子集卷积:第三个括号可以用 FWT 异或卷积:这样算出选两个数组成 x 的方案数:三个部分的方案数分别乘上 f[ x ] 再一起与卷积即可. 注意子集卷积的时候不要改 tp[ i ][ s ] ,因为要的是恰好两个数拼起来,没有改过的(但是做过 FMT 的) tp[ i ][ s ] 存的是初值,表示选 1 个数的方案数. 所以如果可以选任意多个数,就可以像背包一样, tp[ j ][ s…
题面 题解 这是一道FWT和子集卷积的应用题. 我们先设 cnt[x] 表示 Si = x 的 i 的数量,那么 这里的Nab[x]指满足条件的 Sa|Sb=x.Sa&Sb=0 的(a,b)二元组数量,这个可以通过子集卷积快速求出,复杂度为 然后又设 那么就把答案简化为了 我们可以再次简化,设 这里的Nde[x]指满足条件的 Sd^Se=x 的(d,e)二元组数量,用FWT卷积求出,那么如果 就可以把答案简化为 最后考虑枚举  ,设答案为 所以我们就把它转化为了卷积的形式,用FWT这道题就完了.…
聚合函数在一系列的值上执行特定的运算,并返回单个值,如在给定元素的值上执行求和或计数运算. LINQ共有7种聚合操作符:Aggregate.Average.Count.LongCount.Max.Min和Sum. 1. Aggregate Aggregate操作符从某一特定序列或集合中收集值.当聚合完成时,它将序列中返回的值进行累积并返回结果. 1>. 原型定义 public static TSource Aggregate<TSource>(this IEnumerable<TS…
前言 众所周知,递归函数容易爆栈,究其原因,便是函数调用前需要先将参数.运行状态压栈,而递归则会导致函数的多次无返回调用,参数.状态积压在栈上,最终耗尽栈空间. 一个解决的办法是从算法上解决,把递归算法改良成只依赖于少数状态的迭代算法,然而此事知易行难,线性递归还容易,树状递归就难以转化了,而且并不是所有递归算法都有非递归实现. 在这里,我介绍一种方法,利用CPS变换,把任意递归函数改写成尾调用形式,以continuation链的形式,将递归占用的栈空间转移到堆上,避免爆栈的悲剧. 需要注意的是…
  递归基础 递归的概念 在程序中函数直接或间接调用自己 直接调用自己 简介调用自己 跳出结构,有了跳出才有结果 递归的思想 递归的调用,最终还是要转换为自己这个函数 如果有个函数foo,如果他是递归函数,到最后问题还是转换为函数foo的形式 递归的思想就是将一个未知问题转换为一个已解决的问题来实现 function foo(){ ...foo(...)... } 递归的步骤(技巧) 1. 假设递归函数已经写好 2. 寻找递推关系 3. 将递推关系的结构转换为递归体 4. 将临界条件加入到递归体…
Go 的灵魂-goroutine(协程), channel(渠道) 看看吧,不多说了 ************************************************ package main import ( "fmt" "sync" "time") func say(s string) { for i := 0; i < 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Pr…
package main import "fmt" func main() { /* 递归函数(recursion):一个函数自己调用自己,就叫做递归函数. 递归函数要有一个出口,逐渐的向出口靠近 */ //1.求1-5的和 sum := getSum(5) fmt.Println(sum) //2.fibonacci数列: /* 1 2 3 4 5 6 7 8 9 10 11 12 ... 1 1 2 3 5 8 13 21 34 55 89 144 */ res := getFib…
0.目录 目录 0.目录 1.什么是 FWT 2. FWT 怎么做 2.1. 或卷积 2.2.与卷积 2.3.异或卷积 2.4.例题 3. FST 3.1. FST 怎么做 3.2.例题 1.什么是 FWT    FWT 全称为 " 快速沃尔什变换: Fast Walsh Transform " .可以用于解决位运算卷积的问题.   什么叫位运算卷积呢?我们考虑普通的卷积,即: \[C_k=\sum_{i+j=k}A_iB_j \]   位运算卷积就是下标为位运算的卷积(此处与和或用…
u1s1 距离省选只剩 5 days 了,现在学新算法真的合适吗(( 位运算卷积 众所周知,对于最普通的卷积 \(c_i=\sum\limits_{j+k=i}a_jb_k\),\(a_jb_k\) 的贡献累加到 \(c_{j+k}\) 上,因此这种卷积又被称为加法卷积. 但是对于某些卷积,\(a_jb_k\) 的贡献就不是累加到 \(j+k\) 上了,有一类卷积,\(a_jb_k\) 的贡献会累加到 \(j\otimes k\) 上,其中 \(\otimes\) 是某种位运算,即 \(\&,|…
Sum All Odd Fibonacci Numbers 1.要求 给一个正整数num,返回小于或等于num的斐波纳契奇数之和. 斐波纳契数列中的前几个数字是 1.1.2.3.5 和 8,随后的每一个数字都是前两个数字之和. 此题不能用递归来实现斐波纳契数列.因为当num较大时,内存会溢出,推荐用数组来实现. 2.思路 利用for循环得出斐波纳契数前一百个数组成的数列arr 用.filter()按顺序提出arr中的所有奇数 利用for循环计算小于或等于num的斐波纳契奇数之和 3.代码 fun…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qq574857122/article/details/34120269 题目链接:点击打开链接 题意: 给定一个数n 问把这个数拆成多个不同样的fibonacci数 有多少种拆法 #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #include<mat…
题面传送门 其实是一道还好的题罢,虽然做了我 2147483647(bushi,其实是 1.5h),估计也只是因为 HDU 不支持数据下载所以错误总 debug 出来 首先看到 \(10^9+9\) 及斐波那契数列,顿时心里一个激灵,这题和通项公式逃不掉了( 套用斐波那契数列通项公式 \(f_n=\dfrac{1}{\sqrt{5}}((\dfrac{1+\sqrt{5}}{2})^n-(\dfrac{1-\sqrt{5}}{2})^n)\) 得: \[\begin{aligned} \text…
function sumFibs(num) { //return num; var arr = [1,1]; var add = 2; while(true){ var item = arr[0] + arr[1]; if(num < item){ return add; } if(item % 2){ add += item; } arr[0] = arr[1]; arr[1] = item; } } sumFibs(4);…
题目 给一个正整数num,返回小于或等于num的斐波纳契奇数之和. 斐波纳契数列中的前几个数字是 1.1.2.3.5 和 8,随后的每一个数字都是前两个数字之和. 例如,sumFibs(4)应该返回 5,因为斐波纳契数列中所有小于4的奇数是 1.1.3. 提示 此题不能用递归来实现斐波纳契数列.因为当num较大时,内存会溢出,推荐用数组来实现. 参考文档:博客园,Issue Remainder 测试用例 sumFibs(1) 应该返回一个数字. sumFibs(1000) 应该返回 1785.…
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 贪心 日期 题目地址:https://leetcode-cn.com/contest/biweekly-contest-24/problems/find-the-minimum-number-of-fibonacci-numbers-whose-sum-is-k/ 题目描述 给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契…
Buge's Fibonacci Number Problem Description snowingsea is having Buge’s discrete mathematics lesson, Buge is now talking about the Fibonacci Number. As a bright student, snowingsea, of course, takes it as a piece of cake. He feels boring and soon com…
Fibonacci Time Limit: 2000MS Memory limit: 131072K 题目描述 Fibonacci numbers are well-known as follow: Now given an integer N, please find out whether N can be represented as the sum of several Fibonacci numbers in such a way that the sum does not inclu…
原题目: Write a recursive program that extends the range of the Fibonacci sequence.  The Fibonacci sequence is 1, 1, 2, 3, 5, 8, etc., where each element is the sum of the previous two elements. For this problem, instead of only adding the last two elem…
/* 1st method will lead to time limit *//* the time complexity is exponential sicne T(n) = T(n-1) + T(n-2) */ class Solution { /** * @param n: an integer * @return an integer f(n) */ public int fibonacci(int n) { // write your code here if (n == 1 ||…