Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2016, 20:06   #11
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
#include <iostream>
#include <vector>
#include <numeric>

using namespace std;

long long m = 1e9 + 13;


long long mul(long long a, long long b)
{
	if (b == 0)
		return 0;
	if (b == 1)
		return a;
	if (b % 2 == 0)
		return ((mul(a, b / 2) % m) * 2) % m;
	else
		return (mul(a, b - 1) % m + a) % m;
}

vector<vector<long long> > mult(const vector<vector<long long> >& a, const vector<vector<long long> >& b)
{
	vector<vector<long long> > v(a.size(), vector<long long>(b[0].size()));
	for (long long i = 0; i < a.size(); i++)
		for (long long j = 0; j < b[0].size(); j++)
			for (long long k = 0; k < b.size(); k++)
				v[i][j] = (mul(a[i][k], b[k][j]) + v[i][j]) % m;
	return v;
}


vector<vector<long long> > pow(const vector<vector<long long> >& v, long long p)
{
	if (p == 0)
	{
		vector<vector<long long> > pp(v.size(), vector<long long>(v.size()));
		for (long long i = 0; i < pp.size(); i++)
			pp[i][i] = 1;

		return pp;
	}
	if (p == 1)
		return v;
	if (p % 2 == 1)
		return mult(pow(v, p - 1), v);
	else
		return pow(mult(v, v), p / 2);
}

int main()
{
	long long nn, k = 3;
	cin >> nn;
	long long ans = 0;
	for (int n = 1; n <= nn; n++)
	{
	

		vector<vector<long long> > f(2, vector<long long>(2, k - 1));
		f[1][0] = 1;
		f[1][1] = 0;

		f = pow(f, n);
		vector<vector<long long> > v(2);
		v[0].push_back(mul(k, (k - 1)));
		v[1].push_back((k - 1));

		mult(f, v);
		ans += f[0][0];
	}
	cout << ans;
	return 0;
}
Poma][a вне форума Ответить с цитированием
Старый 07.01.2021, 17:33   #12
Вероника124578
Новичок
Джуниор
 
Регистрация: 14.02.2020
Сообщений: 1
По умолчанию

не проходит задача
Вероника124578 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц