题目描述

码队的女朋友非常喜欢玩某款手游,她想让码队带他上分。但是码队可能不会带青铜段位的女朋友上分,因为码队的段位太高(已经到达王者),恐怕不能和他的女朋友匹配游戏。

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

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

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

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

输入格式

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

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

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

输出格式

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

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

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

样例输入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

jsk的更多相关文章

  1. [Android] keytools生成jsk文件以及获取sha1码

    生成jks文件 进入要生的jks文件的路径,打开windows的命令提示符(CMD) keytool -genkey -alias dct -keyalg RSA -keysize 1024 -key ...

  2. MyEclipse tomcat jsk配置--- jvm blind 异常

    -Xms1200m -Xmx1200m -XX:PermSize=64M-XX:MaxPermSize=256m-XX:ReservedCodeCacheSize=48m-Dcom.sun.manag ...

  3. 带jsk证书,请求https接口

    首先是三个返回的实体类 BaseVo.java package https2; import java.io.Serializable; import java.lang.reflect.Invoca ...

  4. JSK 11: 移除数组中的重复元素

    题目描述 给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度. 例如:数组 $A = \{1, 1, 2\}$,你的程序应该输出 $2$ 即新数组的长度,新数组为 $\{1, 2\}$. 要求 ...

  5. JSK 18: 跳跃游戏

    题目描述 给定一个非负整数数组,假定你的初始位置为数组第一个下标. 数组中的每个元素代表你在那个位置能够跳跃的最大长度. 请确认你是否能够跳跃到数组的最后一个下标. 例如:$A = [2,3,1,1, ...

  6. JSK 糟糕的bug

    传送门 题目居然复制不了(QAQ) 分析 TrieJSK已经2比较详细了,就不再单独写博客了,此题相较于Trie模板有一点不同,此题要求比较前缀却没有规定前面是后面的前缀还是后面是前面的前缀,所以我们 ...

  7. Python之路【第二十篇】Tornado框架

    Tornado Tornado是使用Python编写的一个强大的.可扩展的Web服务器.它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中. 我 ...

  8. Linux-001-nmon系统性能监控工具的使用及报表产出

    在进行性能测试的时候,需要获取服务器的各项指标,例如 CPU.MEM.I/O.DISK 等.网上有很多的监控工具,nmon 就是其中的一个,其可与 JMeter结合使用,测试系统的性能.其概要的介绍, ...

  9. css3 filter属性在项目中的应用

    css3 属性filter应用在项目里. 语法: <filter>: 要使用的滤镜效果.多个滤镜之间用空格隔开. 设置或检索对象所应用的滤镜效果. 最常用的滤镜效果是不透明效果,如果要实现 ...

随机推荐

  1. ssh远程连接控制 linux 口令、密钥连接

    sshd服务提供两种安全验证的方法: 基于口令的安全验证:经过验证帐号与密码即可登陆到远程主机. 基于密钥的安全验证:需要在本地生成“密钥对”后将公钥传送至服务端,进行公共密钥的比较(相对安全). 首 ...

  2. Linux(四)—— 项目部署与ansible自动化部署

    目录 项目部署与ansible自动化部署 一.项目部署 二.ansible自动化部署(python自动化运维) 1.安装ansible 2.ansible例子 3.ansible自动化部署nginx ...

  3. USACO Wifi Setup /// 贪心

    题目大意: 若在x处防止一个覆盖范围为r的wifi基站 可以覆盖 x-r 到 x+r 范围 花费为 A+B*r 给定n 给定n个奶牛的位置 求覆盖所有奶牛的最小费用 (可设置任意多个wifi基站) 贪 ...

  4. 如何在有scoped不影响elementUI 的其他页面组件,进行单页面修改的几种方法。

    方式一:内联式css 内联式css , 优点:修改其他方便.缺点:造成页面臃肿,不利于后期维护. 方式二:外链css 外链css ,优点:对其他文件无影响,但会造成多个文件css  (缺点) @imp ...

  5. Hooks初探

    一.创建自己的HOOkS,并进行封装 二.创建自己的HOOkS,并进行封装

  6. TCP建立连接的三次握手和释放连接的四次挥手

    TCP建立连接时,为什么要进行三次握手? 举个打电话的例子: A : 你好我是A,你听得到我在说话吗 B : 听到了,我是B,你听到我在说话吗 A : 嗯,听到了 建立连接,开始聊天! 第一次握手 第 ...

  7. 请问如何实现字符串UTF8->BIG5,BIG5->UTF8。保证送分。-Java/JavaSE

    请问如何实现字符串UTF8-> BIG5,BIG5-> UTF8. ------回答--------- ------其他回答(100分)--------- public String BI ...

  8. printf函数与缓冲区

    printf函数与缓冲区 printf函数是一个行缓冲函数,先将内容写到缓冲区,满足一定条件后,才会将内容写入对应的文件或流中. 基本条件如下: .缓冲区填满 .写入的字符中有‘\n’ '\r' .调 ...

  9. git常用操作命令归纳

    git开始 全局配置:配置用户名和e-mail地址 $ git config --global user.name"Your Name" $ git config --global ...

  10. linux利用用户组给用户赋予不同的权限

    在Linux中wheel组就类似于一个管理员的组.通常在LUNIX下,即使我们有系统管理员root的权限,也不推荐用root用户登录.一般情况下用普通用户登录就可以了,在需要root权限执行一些操作时 ...