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

相關文章
相關標籤/搜索