[arc071f]Infinite Sequence

前言

怎么这题1000分啊。

题目大意

一个无穷序列,要求所有大于n的项都和第n项相同。
如果一个位置值为k,接下来k个位置必须相同。
每个位置填1~n的数,求方案数。

做法

显然相邻两个位置>1后面就全tm一样了。
然后就很tm好做。

#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
typedef long long ll;
const int maxn=1000000+10,mo=1000000007;
int f[maxn*2],g[maxn*2];
int i,j,k,l,t,n,m,ans;
int main(){
    scanf("%d",&n);
    f[1]=1;
    fo(i,1,n){
        if (i>=3) (f[i]+=g[i-3])%=mo;
        (f[i]+=f[i-1])%=mo;
        g[i]=(g[i-1]+f[i])%mo;
    }
    fo(i,1,n-1) (ans+=(ll)f[i]*(n-1)%mo*(n-1)%mo)%=mo;
    fo(i,1,n-1) (ans+=(ll)f[i]*min(i+1,n-1)%mo)%=mo;
    (ans+=(ll)f[n]*n%mo)%=mo;
    (ans+=mo)%=mo;
    printf("%d\n",ans);
}
在编程和技术的语境中,“infinite”(无限)通常指的是循环、序列、数据结构或资源使用上的无限制特性。以下是与“infinite”相关的几个常见概念和实现方法: --- **1. 无限循环 (Infinite Loop)** 无限循环是指程序中的一个控制结构,它会持续执行直到被外部中断。这种循环可能用于服务器监听、任务调度或实时系统中。 ```python while True: print("This is an infinite loop") ``` 需要注意的是,无限循环如果不加以控制可能会导致性能问题或资源耗尽。 --- **2. 无限序列 (Infinite Sequence)** 在函数式编程语言(如 Haskell)中,可以生成无限序列。Python 中也可以通过生成器实现类似功能。例如,生成无限递增的整数序列: ```python def infinite_sequence(): num = 0 while True: yield num num += 1 gen = infinite_sequence() for _ in range(5): print(next(gen)) # 输出前五个数字 ``` --- **3. 无限滚动 (Infinite Scrolling)** 在前端开发中,“infinite scrolling” 是一种用户体验设计模式,允许用户在页面上连续加载内容而无需分页。这通常通过 JavaScript 和 AJAX 技术实现。例如: ```javascript window.addEventListener('scroll', () => { if (window.innerHeight + window.scrollY >= document.body.offsetHeight) { loadMoreContent(); // 调用加载更多内容的函数 } }); ``` --- **4. 无限资源分配 (Infinite Resource Allocation)** 在云计算和分布式系统中,“infinite” 可能指代虚拟化的资源池,例如 CPU、内存或存储空间。实际上,这些资源并非真正无限,但通过动态扩展和负载均衡技术,可以为用户提供“无限”的体验。 --- **5. 数学中的无限 (Infinity in Mathematics)** 在编程中,某些语言支持表示数学上的无穷大。例如,在 Python 中可以这样定义: ```python positive_infinity = float('inf') negative_infinity = float('-inf') print(positive_infinity > 1e308) # 输出 True ``` --- **6. 算法中的无限 (Infinity in Algorithms)** 在算法设计中,尤其是图论和最短路径问题中,“无限”常用来表示不可达的距离。例如,在 Dijkstra 算法中初始化距离矩阵时: ```python import math distances = [math.inf] * n # 初始化所有节点距离为无穷大 distances[start_node] = 0 # 起点距离为 0 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值