CF678D(Iterated Linear Function)

题目链接:传送门

题目大意:略

题目思路:用题目所给函数推出表达式,然后用等比求和公式得到关系式套用即可(需用乘法逆元),也可直接构造矩阵,用矩阵快速幂求解。

感受:做题时一定要仔细,需要仔细注意什么时候需要使用%,此题因为%使用不当,WA3次

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <stack>
#include <cctype>
#include <queue>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <climits>
#define lson root<<1,l,mid
#define rson root<<1|1,mid+1,r
#define fi first
#define se second
#define ping(x,y) ((x-y)*(x-y))
#define mst(x,y) memset(x,y,sizeof(x))
#define mcp(x,y) memcpy(x,y,sizeof(y))
using namespace std;
#define gamma 0.5772156649015328606065120
#define MOD 1000000007
#define inf 0x3f3f3f3f
#define N 100005
#define maxn 20005
typedef pair<int,int> PII;
typedef long long LL;

long long a,b,n,x,ans;
LL ksm(LL x,LL y){
    LL res=1;
    while(y){
        if(y&1)res=res*x%MOD;
        y>>=1;
        x=x*x%MOD;
    }
    return res;
}

int main(){
    int i,j,group;
    cin>>a>>b>>n>>x;
    if(a==1)cout<<(x+n%MOD*b%MOD)%MOD<<endl;
    else{
        LL t=ksm(a,n);
        ans=(t*x%MOD+(t-1)*ksm(a-1,MOD-2)%MOD*b%MOD)%MOD;
        cout<<ans<<endl;
    }
    return 0;
}
时间: 2024-10-11 13:52:48

CF678D(Iterated Linear Function)的相关文章

codeforces 678D Iterated Linear Function 矩阵快速幂

矩阵快速幂的题要多做 由题可得 g[n]=A*g[n-1]+B 所以构造矩阵  { g[n] }    =  {A   B}  * { g[n-1]} {   1   }         {0   1}     {    1    } 然后矩阵快速幂就好 矩阵快速幂的题要多做,多构造矩阵 注:其实这个题可以直接等比数列求求和,单数矩阵快速幂对于这类题更具有普遍性 #include <cstdio> #include <iostream> #include <ctime>

线性回归 Linear Regression

什么是线性回归? y = f(x), a function that representing the relationship between input x and output y. The Function we used here is the general Linear Function. ` 常用的线性回归函数 1.多项式函数(Polynominal Function) (graph from wikipedia) Comments: 1. most common functio

Chapter 9 Linear Predictors

In this chapter we will study the family of linear predictors, one of the most useful families of hypothesis classes. Many learning algorithms that are being widely used in practice rely on linear predictors, first and foremost because of the ability

Linear Decoders

Sparse Autoencoder Recap In the sparse autoencoder, we had 3 layers of neurons: an input layer, a hidden layer and an output layer. In our previous description of autoencoders (and of neural networks), every neuron in the neural network used the same

Linear and Logistic Regression in TensorFlow

Linear and Logistic Regression in TensorFlow Graphs and sessions TF Ops: constants, variables, functions TensorBoard Lazy loading Linear Regression: Predict life expectancy from birth rate Let's start with a simple linear regression example. I hope y

激活函数-Activation Function

该博客的内容是莫烦大神的授课内容.在此只做学习记录作用. 原文连接:https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/2-6-A-activation-function/ 非线性方程 我们为什么要使用激活函数?用简单的语句来概括,就是因为显示并没有我们想象的那么美好 ,它是残酷多变的.哈哈,开个玩笑,不过激活函数也就是为了解决我们日常生活中不能用线性方程所概括的问题. 好了,我知道你的问题来了. 什么是线性方程(

jQuery效果—雪花飘落

实现思路 1.在一定的频率下在页面中生成一定数目的雪花从上往下飘落: 2.在指定的时间内飘落后移除页面: 3.可设置雪花的大小,在一定范围内随机雪花大小: 4.什么时间后清除生成雪花,停止函数. js代码 (function($){ $.fn.snow = function(options){ var $flake = $('<div class="flake" />').css({'position': 'absolute', 'top': '-50px'}), docu

JQuery速成大法

什么是JQuery呢,很多都是只闻其名. jQuery是一个快速.简洁的JavaScript框架,是一个优秀的JavaScript代码库.jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多的事情.它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画设计和Ajax交互. 要用JQuery,首先要有一定的JS基础,否则根本看不懂这是个嘛玩意.有了JS基础后,就会发现,哇,JS好复

SVG.js Mask覆盖和ClipPath裁剪

一.SVG.Mask 覆盖物设置 1. var draw = SVG('svg1').size(300, 300); //SVG.Mask 覆盖物设置 var ellipse = draw.ellipse(80, 40).move(10, 10).fill('#fff'); var mask = draw.mask().add(ellipse); //添加到矩形 maskWith() var rect = draw.rect(100, 100); rect.maskWith(mask); //获