首页 > 其他 > 详细

Codeforces Round #239 (Div. 1)(A,B)

时间:2014-03-30 22:30:46      阅读:522      评论:0      收藏:0      [点我收藏+]

A 把直角顶点放在原点, 然后让两条直角边斜着放,注意要判断斜边是否与Y轴平行

B dp[i] 表 走到i点i上的X是偶数个的步数

   f[i]表示 从 "在i点时i上的X是奇数个 "变到“在i点时i上的X是偶数个” 所需走的步数

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int i, j;
int dp[1003], f[1003];
int p[1003], n;
const int mod = 1e9+7;
void add(int &a, int b) {
    a += b;
    a %= mod;
}
int main() {
    int i, j;
    scanf("%d", &n);
    for(i = 1; i <= n; i++)
        scanf("%d", &p[i]);
    dp[1] = 1; f[1] = 1;
    for(i = 2; i <= n; i++) {
        for(j = p[i]; j < i; j++)
            add(f[i], f[j]);
        add(f[i], i-p[i]+1);
        add(dp[i], (1+(dp[i-1]+f[i])%mod)%mod);
    }
    printf("%d\n", (dp[n]+1)%mod);
    return 0;
}


Codeforces Round #239 (Div. 1)(A,B),布布扣,bubuko.com

Codeforces Round #239 (Div. 1)(A,B)

原文:http://blog.csdn.net/auto_ac/article/details/22598111

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!