f(1)=1  f(2x)=f(x)  f(2x+1)=f(x)+f(x+1) 给出n<=10^6,求:所有的i满足f(i)=n

第一道类欧算法

我们考虑一个性质 f(2x+1)=f(x)+f(x+1)=f(2x)+f(2x+2)

所以,显然有f(2x+1)>f(2x) f(2x+1)>f(2x+2)

那么现在我们知道了f(2x+1),自然考虑枚举一个f(2x)

可以按照以下形式转移:f(2x+1),f(2x)->f(x+1),f(x) (f(x+1)=f(2x+1)-f(2x))

发现转以后的两者也是相邻的,但是不知道奇偶性,较大的那个肯定是基数

那么就可以进行辗转相减,边界就是f(x+1)=f(x)=1

注意这里可以借鉴辗转相除的方法,不然会Tle

#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<vector>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define LL long long
#define M 998244353
using namespace std;
vector<LL> A; int p[1000010];
LL gcd(LL x,LL y,LL& a,LL& b){if(x==y) return x>1?0:b=((a&=0)+=1)++;if(x>y){if(!gcd(--x%y+1,y,a,b)) return 0;b=b*p[x/y]%M; a=(b+1)%M; return 1;} else {if(!gcd(x,--y%x+1,a,b)) return 0;a=a*p[y/x]%M; b=(a-1+M)%M; return 1;}
}
int main(){freopen("func.in","r",stdin); freopen("func.out","w",stdout);LL n; scanf("%lld",&n); p[0]=1;for(int i=1;i<=n;++i) p[i]=(p[i-1]<<1)%M;for(LL x,y,i=1;i<=n;++i){if(gcd(n,i,x,y)) A.push_back(x);if(x<0) printf("%d %d\n",x,i);}sort(A.begin(),A.end());for(LL i=0;i<A.size();++i) printf("%lld\n",A[i]);
}   

转载于:https://www.cnblogs.com/Extended-Ash/p/9477142.html

Jzoj5317 Func相关推荐

  1. 使用.NET中的Action及Func泛型委托

    原文 http://www.cnblogs.com/skm-blog/archive/2013/05/24/3096294.html 委托,在C#编程中占有极其重要的地位,委托可以将函数封装到委托对象 ...

  2. 从 Comparison/Converter 到Func 的进化

    本篇文章给大家介绍两个在.net2.0 中就已经出现的, 很"老"的委托方式. 通常情况下, 我们在Array 和 List<T> 类中使用这些功能. 明白用法和作用可 ...

  3. C#之Action和Func的用法(转自 https://www.cnblogs.com/LipeiNet/p/4694225.html)

    以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发 ...

  4. [C#基础]Func和Action学习

    目录 委托 Action Func 总结 委托 委托的那些事 关于委托的基本定义,在很久之前的这篇文章中,有个简单的介绍.稍微回顾一下. 委托是c#中类型安全的,可以订阅一个或多个具有相同签名方法的函 ...

  5. 浅谈C#中常见的委托Func,Action,Predicate(转)

    一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的. 关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇.我就不 ...

  6. 解决 EF whereT(func) 查询的一个性能问题

    前两年帮朋友 做了个网吧管理软件,采用动软的三层架构 sql语句生成的.最近因功能变更 要改动,而我这段正在做asp.net mvc +ef+autofac的一个电商网站.索性 就把原来的底层全重新了 ...

  7. Delegate,Action,Func,匿名方法,匿名委托,事件

    一.委托Delegate 一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如 [c-sharp] view plainco ...

  8. C#之Action和Func的用法

    以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发 ...

  9. 七天学习计划_c#_[2][3][4][5]委托、事件、委托与事件的区别、泛型委托、Func\Action\predicate

    由于委托之前的博客已经详细写了,这里就简单的过一遍,复习一下: 了解委托 基于委托开发事件驱动程序变得非常简单. 使用委托可以大大简化多线程编程难度. 理解委托 委托也可以看做成一种数据类型,可以定义 ...

最新文章

  1. windows 域的一些概念
  2. 【学术技巧】让你的 GitHub 秒变高大上!
  3. Selenium3+MySQL数据库进行数据驱动测试
  4. 安装Nginx时报错 the HTTP cache module requires md5 functions
  5. 群同态基本定理证明_有限群的线性表示 | 表示与群代数
  6. 那些一心想要离开 BAT 的人,后来怎么样了?
  7. apache的源码包编译
  8. moss2007-搜索服務
  9. 【汇编语言与计算机系统结构笔记01】x86/MIPS/ARM指令集概述与特性,一篇HPCA引发的思考(商业生态的决定性作用)
  10. jQuery从后面开始截取
  11. 鼎力加密狗驱动程序_怎么安装加密狗驱动程序
  12. TensorFlow Seq2Seq模型样例:实现语言翻译
  13. html超链接为变量,如何向超链接添加变量值
  14. html 语言 背景颜色,如何在HTML中设置背景颜色?
  15. 第二章 BIRT设计器概述及本地化支持
  16. VASP计算笔记_弹性常数计算
  17. 中国计算机协会(CCF)
  18. 配置数据源(DataSource)
  19. 100天精通Python丨办公效率篇 —— 12、Python自动化操作 office-word(word转pdf、转docx、段落、表格、标题、页面、格式)
  20. Compiling Cpp

热门文章

  1. php获取页面的可视内容高度,网页制作技巧:获取页面可视区域的高度_css
  2. 面试题-- 什么是偏向锁
  3. T.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflectio
  4. lamba List 转 Map
  5. java jdk 类加载机制_JDK源码阅读之类加载
  6. SQL语言基础:SQL中的数据完整性约束用法
  7. C#easyui combotree 设置节点折叠
  8. haproxy服务启动命令_安装haproxy和haproxy命令
  9. IllegalArgumentException:argument type mismatch
  10. 2021 年最值得了解的 Node.js 工具