一: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;
}