SUSE第四次课后作业

一:game
题目讲解链接: NOIP2012提高组复赛 国王游戏 (贪心解法 + 高精度运算)

二: LCS
题目讲解链接: HDU 1159

三: 五 : 卡特兰数列
卡特兰数列模板: Catalan数列

四:
存下压缩后可以减少多少, 把这个差值排序, 记录下没有压缩的是的内存和, 把这个值和硬盘的大小比较, 如果大了就减少之前记录的差值, 减少一次结果+1, 如果全部减少完都没有达到目标, 就输出-1

代码

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>

using namespace std;

int a[1010];

int main()
{
    
    
    int n, m;
    cin >> n >> m;
    int sum = 0;
	
	for(int i = 0; i < n; i++)
	{
    
    
		int x, y;
		cin >> x >> y;
		sum += x;
		a[i] = x - y;	
	 } 
	 sort(a, a + n);
	 reverse(a, a + n);
	 int ans = 0;
	 int i = 0;
	 while(sum > m)
	 {
    
    
	 	ans++;
	 	sum -= a[i++];
	 	if(i > n)
	 	{
    
    
	 		cout << -1 <<endl;
	 		return 0;
		 }
	 } 
	 cout <<ans << endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_45432665/article/details/108054997