摘要:
题目说找一个 子矩阵,里面价值最大,其中男生人数 >= b, 女生人数 >= g, 中间不能有不会唱歌的人。这题如果关键在于 排除不会唱歌的人,思想肯定是贪心思想,想人数越多越好,男生女生不过就是在if里面多判定的一句话罢了。为了方便理解,我画张很丑的图...蓝色表示我当前扫到的队员,当然他是会唱歌的。红色表示不会唱歌的队员。白色表示,没选择的队员。我在扫描时,对于每一个点是一行行扫,这样的话,复杂度是 N*M*N。先扫第当前行,也就是第4行,因为第四行上面之前的队员我都会唱歌,那我尽量全部选走。粉色代表这次选择的队员。再上一行,因为有不会唱歌的队员,那我只能放弃第一列之前的所有成 阅读全文
摘要:
题目说要在规定时间内,拿走最大价值。因为房间n <= 10 太小了,所以直接枚举 走过哪几个房间,然后dp 递推下去就可以了dp[i][j] 走过i状态的房间,现在在第j个房间上面花费的最小时间。View Code 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cmath> 6 using namespace std; 7 #define N 12 8 #define M 110 9 #de 阅读全文
摘要:
本场比赛,相对最好做的一题,看出本质,就容易了。问题简化下,比如给你十进制数 s, 问 s! 末尾有几个0。我们一般都是直接找有多少个 2,5。因为2*5 = 10那么 现在是 k进制数 s, 同理,就是找 s! 里面,有多少个因子的能够组成 k,最多组成 ans 个 k, ans 就是答案。这个 自己可以简单证明下。后面好处理。View Code 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cmat 阅读全文
摘要:
最近好久没做比赛,加上考试什么的,压力很大。这几天休息,正好抽个空做下浙大月赛。发现自己果然变水了。不过说起来,zju的月赛难度也在上升。这是比赛时候做的第一题,题目是说每次会有 移除x 和 添加x 的操作,问你每次操作后,这串数组的中位数是什么。操作n <= 10000我的想法就是一共出现的数字最多就n个,可以把数据离散掉,然后用线段树,把操作更新掉,可以储存数组现有的数字个数ans。每次查找就查找(ans/2+1)个数字是啥就可以了,如果ans是偶数,再找ans/2个数字,两个相加/2这题目唯一我的疑问就是为啥要LL。。。怎么看数据不会爆啊,可是交了几次都wa了,我就一狠心改了LL交 阅读全文