`
digiter
  • 浏览: 120440 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

UVALive 5112 - Sales Prediction

    博客分类:
  • ICPC
阅读更多
封装了矩阵类
比赛做得很郁闷,为什么别人写得很长、很罗嗦的代码可以过题,而我的总是过不了呢?...
/*
 * Author: rush
 * Created Time:  2011年01月05日 星期三 19时39分08秒
 * File Name: icpc/20100105/E2.cpp
 */
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#define out(v) cout << #v << ": " << (v) << endl
using namespace std;
typedef long long LL;
const LL MOD = 1000000007LL;

#define FOR(i, n) for (int i = 1; i <= (n); ++i)
typedef vector<LL> Vec;
struct Mat {
	LL mat[10][10], n;
	Mat(int _n): n(_n) { FOR(i, n) FOR(j, n) mat[i][j] = 0; }
	Mat one() const {
		Mat ans(n);
		FOR(i, n) FOR(j, n) ans[i][j] = (i == j); 
		return ans;
	}
	LL* operator[](int x) {
		return mat[x];
	}
	Mat operator *(Mat R) {
		Mat ans(n);
		FOR(i, n) FOR(j, n) {
			ans[i][j] = 0;
			FOR(k, n) ans[i][j] = (ans[i][j] + (LL)mat[i][k] * R[k][j] % MOD) % MOD;
		}
		return ans;
	}
	Vec operator *(Vec R) {
		Vec ans(10, 0);
		FOR(i, n) {
			ans[i] = 0;
			FOR(k, n) ans[i] = (ans[i] + (LL)mat[i][k] * R[k] % MOD) % MOD;
		}
		return ans;
	}
	Mat operator +(Mat R) {
		Mat ans(n);
		FOR(i, n) FOR(j, n) ans[i][j] = ((LL)mat[i][j] + R[i][j]) % MOD;
		return ans;
	}
	Mat pow(LL k) {
		Mat ans = one(), x = *this;
		while (k) {
			if (k & 1) ans = ans * x;
			k >>= 1;
			if (k) x = x * x;
		}
		return ans;
	}
	Mat sumpow(LL k) {
		// I + M + M^2 + ... + M^k
		if (k == 0) { return one(); }
		if (k % 2 == 1) {
			Mat mid = sumpow(k / 2);
			return mid + mid * pow(k / 2 + 1);
		}
		return sumpow(k - 1) * (*this) + one();
	}
};

int T;
int N, R, K;
Vec S(10, 0), a(10, 0);

int main()
{
	scanf("%d", &T);
	while (T--) {
		scanf("%d%d%d", &N, &R, &K);
		FOR(i, R) scanf("%lld", &S[i]);
		for (int i = R; i >= 1; --i) scanf("%lld", &a[i]);
		
		Mat A(R);
		FOR(i, R - 1) A[i][i + 1] = 1;
		FOR(j, R) A[R][j] = a[j];
		
		Vec C = A.pow(K - 1) * S;
		Vec D = A.pow(K).sumpow(N - 1) * C;
		printf("%lld\n", D[1]);
	}
    return 0;
}
分享到:
评论

相关推荐

    cnn-bilstm-attention-time-series-prediction_keras-master

    cnn-bilstm-attention-time-series-prediction_keras-mastercnn-bilstm-attention-time-series-prediction_keras-mastercnn-bilstm-attention-time-series-prediction_keras-mastercnn-bilstm-attention-time-series...

    Stock-Price-Prediction-LSTM-master 2_LSTM_LSTM股票预测_LSTM股票预测_lstm

    在本文中,我们将深入探讨如何使用长短期记忆网络(LSTM)进行股票价格预测,以及在实际项目"Stock-Price-Prediction-LSTM-master 2_LSTM_LSTM股票预测_LSTM股票预测_lstm"中可能涉及的技术细节。LSTM是一种特殊类型...

    LSTM-Neural-Network-for-Time-Series-Prediction-master.rar

    标题中的“LSTM-Neural-Network-for-Time-Series-Prediction-master”暗示了这是一个关于使用长短期记忆(LSTM)神经网络进行时间序列预测的项目。时间序列预测是一种利用历史数据来预测未来的统计方法,特别适合...

    CNN-Prediction-Based-Reversible-Data-Hiding-main (1).zip

    CNN-Prediction-Based-Reversible-Data-Hiding-main CNN-Prediction-Based-Reversible-Data-Hiding-main CNN-Prediction-Based-Reversible-Data-Hiding-main CNN-Prediction-Based-Reversible-Data-Hiding-main

    Black-Friday-Sales-Analysis-and-Prediction

    "Black-Friday-Sales-Analysis-and-Prediction"这个项目专注于对黑色星期五销售数据的深入理解和预测,这是一个典型的业务场景,它可以帮助企业理解消费行为,优化库存管理,制定营销策略。下面将详细介绍这个项目...

    Data-Driven Prediction for Industrial Processes and Their Applications

    Data-Driven Prediction for Industrial Processes and Their Applications (Information Fusion and Data Science) By 作者: Jun Zhao – Wei Wang – Chunyang Sheng ISBN-10 书号: 3319940503 ISBN-13 书号: ...

    US-Stock-Market-Prediction-by-LSTM-

    使用LSTM网络进行股市预测例程 US-Stock-Market-Prediction-by-LSTM 有一定参考价值,供参考。

    COVID-19世界新冠疫情预测代码(含数据集)COVID-19 prediction

    COVID-19世界疫情分析源代码&数据集,主要包括疫情数据的获取,对获取数据的预处理,数据分析可视化——matplotlib、PyEcharts绘制柱形图、折线图、地图、玫瑰图、动态条形图,使用SIR模型对美国疫情数据进行模拟...

    kaggle_porto-seguro-safe-driver-prediction.zip

    标题 "kaggle_porto-seguro-safe-driver-prediction.zip" 暗示这是一个关于 Kaggle 数据竞赛的项目,目标是预测porto-seguro公司的保险客户是否为安全驾驶者。Porto Seguro是一家巴西的保险公司,他们提供了大量的...

    cnn-bilstm-attention-time-series-prediction_keras-master.zip

    标题 "cnn-bilstm-attention-time-series-prediction_keras-master.zip" 暗示了一个使用Keras库实现的深度学习模型,该模型结合了卷积神经网络(CNN)、双向长短时记忆网络(BiLSTM)以及注意力机制(Attention),...

    ctr预估公开数据集 avazu avazu-ctr-prediction

    avazu-ctr-prediction ctr预估公开数据集 avazu avazu-ctr-prediction ctr预估公开数据集 avazu avazu-ctr-prediction ctr预估公开数据集 avazu avazu-ctr-prediction ctr预估公开数据集 avazu avazu-ctr-prediction...

    COVID-19新冠疫情预测代码(含数据集)COVID-19 prediction.zip

    在这个名为“COVID-19预测”的项目中,我们聚焦于使用时间序列分析和机器学习方法来预测COVID-19疫情的发展。这个压缩包包含了必要的数据集以及源代码,供研究者和开发者进行疫情预测和数据分析。...

    Bearing-fault-prediction-master.zip

    本资料包"Bearing-fault-prediction-master.zip"专注于轴承故障预测,主要涉及数据分析这一核心领域。 在数据分析领域,轴承故障预测通常通过收集振动数据、温度数据等传感器信号,利用先进的数据处理方法和机器...

    Video-frame-prediction-by-multi-scale-GAN-master.zip

    本文将深入探讨一个名为"Video-frame-prediction-by-multi-scale-GAN-master.zip"的项目,该项目是用Python语言和Chainer框架实现的基于生成对抗网络(GAN)的视频帧预测模型。 生成对抗网络(GANs)是由Ian ...

    LSTM-Neural-Network-for-Time-Series-Prediction_LSTM_股票预测_921212a

    标题“LSTM-Neural-Network-for-Time-Series-Prediction_LSTM_股票预测_921212a”表明我们关注的主题是使用长短期记忆网络(LSTM)进行时间序列预测,特别是应用于股票价格预测。LSTM是一种特殊的循环神经网络(RNN...

    porto-seguro-safe-driver-prediction.zip

    标题 "porto-seguro-safe-driver-prediction.zip" 指的是一个数据压缩包,用于进行 Porto Seguro 的安全驾驶员预测挑战。这个挑战通常涉及到利用机器学习或深度学习技术预测汽车保险客户的理赔风险,以便保险公司能...

    Review-Helpfulness-Prediction, 自动检测检查helpfulness项目 使用.zip

    Review-Helpfulness-Prediction, 自动检测检查helpfulness项目 使用 评估Helpfulness预测介绍:自动查找有用评论的项目。利用文本挖掘技术实现自然语言处理。情感分析和机器学习技术。语言:python 。( 标准库:xlrd...

    Stock-Market-Prediction-master_stock_

    本项目"Stock-Market-Prediction-master_stock_"显然旨在使用循环神经网络(RNN)来预测股票价格,这是一种常见的人工智能技术,用于处理序列数据。下面将详细介绍这个项目可能涉及的知识点。 首先,我们要理解**...

Global site tag (gtag.js) - Google Analytics