poj2696

简单dp

View Code
#include <iostream>
#include
<cstdio>
#include
<cstdlib>
#include
<cstring>
using namespace std;

int main()
{
//freopen("t.txt", "r", stdin);
int t;
scanf(
"%d", &t);
while (t--)
{
int a, b, c, d, e, f, g, h, n, fun[1005];
scanf(
"%d%d%d%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f, &g, &h, &n);
fun[
0] = a;
fun[
1] = b;
fun[
2] = c;
for (int i = 3; i <= n; i++)
{
if (i & 1)
{
fun[i]
= ((d * fun[i - 1] + e * fun[i - 2] - f * fun[i - 3])
% g + g) % g;
}
else
{
fun[i]
= ((f * fun[i - 1] - d * fun[i - 2] + e * fun[i - 3])
% h + h) % h;
}
}
printf(
"%d\n", fun[n]);
}
return 0;
}

posted @ 2011-05-16 18:50  金海峰  阅读(119)  评论(0编辑  收藏  举报