3715专题

ZOJ 3715 Kindergarten Election

题意: n个人投票  唯一一个票数最多的人当选  1想当选  他可以通过给别人糖让不选他的人选他  问  最少需要多少糖 思路: 由于n比较小  可以枚举1当选时得了多少票  这样就可以贪心的使用糖 如果1当选时有i票  那么所有人都要先保证选票数<i  而且还要保证至少一个人<i-1  因为1还会投出一票 保证上述条件下  如果1票数已经超过i  则说明这次枚举是失败的  如果不

zoj 3715

想法: 枚举1号当班长后所得的票数k,其他人的票数应该小于等于k-1,多的按费用从小到大进行收买, 如果还是不够K,将剩余的票按费用小到大的顺序收买。 #include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>using namespace std;const int

3715. 最少交换次数 北京师范大学考研机试题

给定一个 1∼N的随机排列,要求一次只能交换相邻两个数,那么最少需要交换多少次才可以使数列按照从小到大排列呢? 请你求出一个待排序序列的最少交换次数和对应的逆序数列。 逆序数列:给定 n 个数 1,2,…,n 的一个排列 a1a2…a,令 bi 是数 i 在此排列中的逆序数,换句话说,bi 等于该排列中先于 i又大于 i的那些数的个数。数列 b1b2…bn 称为排列 a1a2…an 的逆序数