jsk

题目描述

码队的女友很是喜欢玩某款手游,她想让码队带他上分。可是码队可能不会带青铜段位的女友上分,由于码队的段位过高(已经到达王者),恐怕不能和他的女友匹配游戏。c++

码队的女友有些失落,她但愿能尽快冲上王者。这个赛季开始了,求胜心切的码队的女友想让码队帮她计算一个问题:测试

这个赛季码队的女友一共打了 $N$ 场排位赛,每一场排位赛中,码队女友的成绩用 $S_i$ 来表示(成绩只可能为“赢”或“输”。 $1$ 表明码队女友赢了这场比赛,$0$ 则表明输了这场比赛)。因为这款游戏使用净胜场数这个数据指标来衡量玩家可否晋级更高的段位(玩家净胜场数 = 玩家赢场数 - 玩家输场数),因此码队的女友想知道,这个赛季的过程当中她的最高净胜场次。spa

码队听完他女友的问题以后,以为她有些天真,由于码队知道,这家游戏厂商可能出于不想让玩家早“弃坑”的目的,因此在每一个赛季都会给每位玩家发出 $K$ 张 「排位保护卡」。若是一名玩家在一场排位赛中输掉了游戏,但 TA 还有排位保护卡,那么系统将自动为 TA 用掉一张排位保护卡,帮该玩家抵消这场输掉的排位赛(即在系统记录成绩时,不将该局游戏计入玩家的输场数)。可是,若是一名玩家在某个赛季中,没有用完这 $K$ 张排位保护卡,那么这些剩余的排位保护卡将失效,不能在下个赛季继续使用。code

听完码队说的这些事情之后,码队的女友变得更有信心了!如今,码队的女友想求助你:若是按照这个赛季的这 $N$ 场排位赛成绩来计算,通过 $M$ 个赛季(假设每一个赛季都打 $N$ 场排位赛,且每一个赛季都得到了彻底相同的排位赛成绩),那在这 $M$ 个赛季过程当中,她的最高净胜是多少场?blog

输入格式

第一行一个整数 $T$,表示有几组数据($T \le 1000$)。游戏

对于每一组测试数据:第一行有三个整数 $N,K,M$,分别表明码队的女友在一个赛季里总共打了 $N$ 场排位赛,每一个赛季有 $K$ 张排位保护卡,总共将进行 $M$ 个赛季,以空格分隔。($1\le K \le N \le 100$,$1 \le M \le 10^9$)ci

接下来一行,输入一个长度为 $N$ 的字符串(只由 $0$ 和 $1$ 组成),表明码队的女友在一个赛季里的每场排位赛中的成绩 $S_i$ $(i=1,2, \cdots ,N)$。字符串

输出格式

对于每一组测试数据,输出一行。it

每行只包含一个整数,表明在 $M$ 个赛季过程当中,码队的女友最高能净胜多少场游戏。若是净胜场数为负,请输出 $0$。class

输出时每行末尾的多余空格,不影响答案正确性

样例输入1 复制
1
5 1 2
11110
样例输出1 复制
8
样例输入2 复制
1
5 2 2
00101
样例输出2 复制
2

给你个长度为nm的0 1串,能够去掉xn+1~x*n+n中最多k个0,求最大净胜场

#include<bits/stdc++.h>
using namespace std;
#define N 110
#define LL long long
LL s[N];
char a[N];
int main()
{
    int t,n,i,j,k;
    LL m,ans,res,s1,s2;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d%lld",&n,&k,&m);
        scanf("%s",a+1);
        s[0]=0;
        s1=0;
        s2=k;
        res=0;
        for(i=1;i<=n;i++)
        {
            if(a[i]=='0')
            {
                if(s2)
                    s2--;
                else
                    s1--;
            }
            else
            {
                s1++;
            }
            s[i]=s1;
            res=max(res,s[i]);
        }
        if(s1<=0)
            ans=res;
        else
        {
            ans=res+(m-1)*s1;
        }
        printf("%lld\n",ans);
    }
    return 0;
}

题目描述

码队的女友喜欢收集折扇,更喜欢给折扇染上花花绿绿的颜色,使它们看起来五彩斑斓。折扇的形状以下。手握处的支架有 \(n\) 条,上面的弧有 \(n-1\) 条。

如今,码队的女友但愿给折扇的支架和弧染上 \(m\) 种颜色,一条支架或一条弧只染一种色,且有公共端点的弧与弧、弧与支架、支架与支架之间不能染同一种颜色。

码队的女友请你帮忙,求出全部可行的染色方案的数量。

码队的女友提示你:折扇的正面和背面是不同的,所以不用考虑折扇对称的状况。换言之,每条支架、每条弧都是不同的。

答案对 \(10^9 + 7\) 取模。

输入格式

有多组数据。

第一行输入一个整数,表示有 \(T\) 组数据。

对于每一组测试数据:输入一行,包含两个整数,分别是 \(n\)\(m\),以空格分隔。保证 \(n \le m\)

输出格式

对于每一组数据,输出一行。

每行只包含一个整数,表示全部可行的染色方案的数量。

数据范围

对于所有数据,\(T \le 10,2 \le n \le m \le 500000\)

输出时每行末尾的多余空格,不影响答案正确性

样例输入 复制 3 2 3 4 4 4 6 样例输出 复制 6 96 15120

相关文章
相关标签/搜索