nefu 406

2024-02-08 01:48
文章标签 nefu 406

本文主要是介绍nefu 406,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://acm.nefu.edu.cn/JudgeOnline/problem/406.jsp


这题真心坑呀!开始数组开小了,死活TLE,不知道怎么改了。之后改过来之后,就wa,后来看了标称才恍然大悟,哎……dp[ i ][ j ] 表示长度为用前i中颜色组成长度为j的串的个数

#include <cstdlib>
#include <iostream>
#include <cstdio>
#include <cstring>using namespace std;const long long mod=1000000007;
int color[10010],num[1010];
long long dp[1010][210];
long long c[210][210];int main(int argc, char *argv[])
{int n,k,a;c[0][0]=1;c[1][0]=c[1][1]=1;for(int i=2;i<=200;i++){c[i][0]=c[i][i]=1;        for(int j=1;j<i;j++)c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;}while(scanf("%d%d",&n,&k)==2){int Max=0;for(int i=0;i<n;i++)                             scanf("%d",&color[i]),Max=max(Max,color[i]);memset(num,0,sizeof(num));  for(int i=0;i<n;i++)  {scanf("%d",&a);if(a) num[color[i]]++;}int tt=0;for(int i=0;i<=Max;i++)if(num[i]!=0)num[++tt]=num[i];memset(dp,0,sizeof(dp));for(int i=0;i<=tt;i++)dp[i][0]=1;for(int i=0;i<tt;i++){     for(int j=1;j<=k;j++)    dp[i+1][j]+=dp[i][j];for(int j=0;j<=k;j++)if(dp[i][j])for(int d=1;d<=num[i+1]&&d+j<=k;d++)dp[i+1][d+j]=(dp[i+1][d+j]+dp[i][j]*c[d+j][d]%mod)%mod;}/* long long ans=0;for(int i=0;i<=tt;i++)ans=(ans+dp[i][k])%mod;*/printf("%lld\n",dp[tt][k]);  }//system("PAUSE");return EXIT_SUCCESS;
}



这篇关于nefu 406的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/689577

相关文章

数论 - 算数基本定理的运用 --- nefu 118 : n!后面有多少个0

题目链接: http://acm.nefu.edu.cn/JudgeOnline/problemshow.php   Mean:   略。 analyse:  刚开始想了半天都没想出来,数据这么大,难道是有什么公式? 首先我们要知道一点:n!里面所有的0都是2*5得来的,而且不管怎样2的数量一定是>5的数量,所以我们只需要考虑有多少个5就可。 后面也是看了解题报告才知道有

【Java】ApiPost请求返回 `406` 状态码(jackson)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述3.1 问题截图3.2 错误简介3.2.1 HTTP状态码 `406 Not Acceptable`3.2.2 序列化和反序列化 3.3 后端问题位置 四、解决方案:4.1 认识问题4.2 解决过

nefu暑假集训4 哈希 个人模板+例题汇总

前言:   什么是哈希?哈希其实是所有字符串操作中,最简单的操作了(哈希的过程,其实可以看作对一个串的单向加密过程,并且需要保证所加的密不能高概率重复(就像不能让隔壁老王轻易地用它家的钥匙打开你家门一样qwq),通过这种方式来替代一些很费时间的操作。 比如,最常见的,当然就是通过哈希数组来判断几个串是否相同(洛谷P3370)。此处的操作呢,很简单,就是对于每个串,我们通过一个固定的转换方式,将相

力扣406-根据身高重建队列(java详细题解)

题目链接:406. 根据身高重建队列 - 力扣(LeetCode) 前情提要: 因为本人最近都来刷贪心类的题目所以该题就默认用贪心方法来做。 贪心方法:局部最优推出全局最优。 如果一个题你觉得可以用局部最优推出全局最优,并且没有反例来反驳的话就可以用贪心来试试。 题目思路: 如果你看过我对于力扣135-分发糖果那篇题解的话,会发现这个题好像跟那个有一点类似。 类似在哪里? 这俩道题

代码随想录算法训练营第二十九天| 134. 加油站 135. 分发糖果 860.柠檬水找零 406.根据身高重建队列

134. 加油站 题目: 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 cost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1 。如果存在解,则 保证

异步请求后台json传回前台406

这是一个日狗的问题,我弄了一天了,没想到竟然是差包 还有一个问题就是,我是文件上传,路径问题这是蛋疼的,我一开始随便写了路径,比如d:/…。可是呢,我没有在服务器配置路径,于是路径读取错误404,好吧,我换个目录吧,弄到项目下面,才OK。 期间还学习到了用console.log() (#image).attr("src","value")(#image).attr("src","value

代码随想录算法训练营第31天| 134. 加油站、135. 分发糖果、860.柠檬水找零、 406.根据身高重建队列

134. 加油站 题目链接:134. 加油站 文档讲解:代码随想录 状态:so easy 思路:每次遍历时,如果当前的油量差(currTank)小于0,说明从当前起点无法到达下一个加油站。此时,将下一个加油站设为新的起点,并重置当前油量差(currTank)。最后检查总的油量差(totalTank),如果总的油量差大于等于0,说明存在一个合法的起点,使汽车能绕完整个环形路;否则不存在

代码随想录算法训练营Day31| 134. 加油站 , 135. 分发糖果 ,860.柠檬水找零 , 406.根据身高重建队列

今天的题目真的写的我一肚子气,真的太气了,一道题都写不出来,再听完题解后,还是觉得没有完全理解,果然菜是原罪,我还是太弱了,继续加油吧!来看今天的第一题 134. 加油站:代码随想录 这道题目的意思就是说一个路上有n个加油站,你现在的初始状态下油是0,你可以选择从一个加油站开始,看你是否能绕路行驶一圈,这道题我想到了,将他所给的gas数组减去cost数组,然后来选,但是我不知道的是怎么来

nefu 84 五指山(扩展欧几里德)

五指山 Problem : 84 Time Limit : 1000ms Memory Limit : 65536K description 西游记中孙吾空大闹天宫,如来佛祖前来降伏他,说道:“我与你打个赌赛;你若有本事,一筋斗打出我这右手掌中,算你赢,再不用动刀兵苦争战,就请玉帝到西方居住,把天宫让你;若不能打出手掌,你还下界为妖,再修几劫,却来争吵。”那

location.href = ‘welcome.html‘;报错 - Completed 406 NOT_ACCEPTABLE

巧妙解决方案,使用服务端进行redirect即可 。 package com.aliyun.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class RedirectC