题意:有来自n个专业的学生,每个专业分别有ai个同学,现在要将这些学生排成一行,使得相邻的两个学生来自不同的专业,问有多少种不同的安排方案. 分析:首先将所有专业的学生视作一样的,最后再乘以各自学生的数量的阶乘.排列的时候通过动态规划来处理,设状态为前i个系,一共有j个位置相邻位置来自同系,然后转移.具体见代码注释. #include <cstdlib> #include <cstdio> #include <cstring> #include <iostream…
题面在这里 description 有\(n\)种颜色的小球,每种颜色的小球有\(a_i\)个: 要把它们摆成一排,求相邻小球颜色不相同的摆放方案数. 任意两个合理的安排方法,只要有一个位置的同学不同,都被认为是不同的. data range \[n\le 50,a_i\le 50,\sum a_i\le 500\] solution 鸣谢YCB 以下先考虑可重排列的情况 考虑容斥: \[Ans=\sum_{i=0}^{n-1}(-1)^{i}f(i)\] 其中\(f(x)\)表示至少有\(x\…
湫秋系列故事——安排座位 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 454    Accepted Submission(s): 137 Problem Description 为了给腾讯公司找到更多优秀的人才,HR湫秋最近去某高校组织了一次针对该校所有系的聚会,邀请了每个系的一些优秀学生来参加. 作为组织者,湫秋要安排他们的座…
湫湫系列故事——植树节 Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 958    Accepted Submission(s): 565 Problem Description 今天是一年一度的植树节,腾讯幼儿园要求每个老师在班里选出几个小朋友一起去野外种植小树苗,根据学校的整体安排,湫湫老师的班里要选出3个小朋友.  已知湫湫的班里共…
湫湫系列故事――减肥记I  HDU 4508 一道裸的完全背包 #include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> using namespace std; ],a[],b[]; int main() { int n,i,j,m; while(scanf("%d",&n)!=EOF) { ;i<n;i++) scanf(&qu…
湫湫系列故事——减肥记I 对于01背包和完全背包,昨晚快睡着的时候,突然就来了灵感 区别:dp[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值 在第二重循环,01 是倒着循环的,因为如果正着循环,有可能j-w[i]就有可能会是这次(第i次)循环里面的,但因为每种物品只有一个,根据01背包的要求,j-w[i]只能是上次循环:如果倒序,那么对于这个式子 for(i=0;i<n;i++) for(j=sum;j>0;j--) dp[j]=max(dp[j],dp[j-bag[i]…
湫湫系列故事——设计风景线 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 3105    Accepted Submission(s): 562 Problem Description 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,…
湫湫系列故事--设计风景线 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 4000 Accepted Submission(s): 715 Problem Description 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,那就建的越…
HDU 4508 湫湫系列故事--减肥记I(全然背包) http://acm.hdu.edu.cn/showproblem.php?pid=4508 题意: 有n种食物, 每种食物吃了能获得val[i]点幸福度和cost[i]点热量, 如今湫湫每天吃东西的热量不能超过m点. 问她最多能获得多少点幸福度? 分析: 基础的全然背包问题. 本题的限制条件是: 热量总量<=m 本题的目的条件是: 幸福度越大越好. 所以我们令dp[i][j]==x表示仅仅吃前i种食物且总热量不超过j时能获得的最大幸福度为…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4514 湫湫系列故事--设计风景线 Time Limit: 5000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) 问题描述 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,那就建的越长越好. 现在已经勘探确定了n个位…