[河南省ACM省赛-第三届] BUYING FEED (nyoj 248)

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define N 352
/*
    重量*单价+重量*距离 = 重量*(距离+单价) 预处理单价
    贪心:优先买价格低的
*/
struct Node {
    int p;// p = (单价+距离)
    int w;
}c[N];

bool cmp(Node a, Node b)
{
    return a.p != b.p ? a.p < b.p : a.w > b.w;
}

int main()
{
    freopen("d:\\in.txt", "r", stdin);
    int t;
    int K, E, n;
    scanf("%d", &t);
    while(t--) {
        scanf("%d%d%d", &K, &E, &n);
        int a, b;
        for(int i=0; i<n; i++){
            scanf("%d%d%d", &a, &c[i].w, &b);
            c[i].p = E-a+b;
        }
        sort(c, c+n, cmp);
        int res = 0, totw = 0;
        for(int i=0; i<n; i++){
            if(totw >= K) break;
            if(totw+c[i].w > K)
                res += c[i].p*(K-totw);
            else
                res += c[i].p*c[i].w;
            totw += c[i].w;
        }
        printf("%d\n", res);
    }
    return 0;
}
时间: 2024-10-11 18:05:14

[河南省ACM省赛-第三届] BUYING FEED (nyoj 248)的相关文章

[河南省ACM省赛-第三届] 素数 (nyoj 169)

#include <iostream> #include <cstdio> #include <queue> #include <cstring> #include <algorithm> #include <cmath> using namespace std; #define N 1100 #define INF 0x7fffffff bool prime[N]; void init() { memset(prime, true,

[河南省ACM省赛-第三届] 网络的可靠性 (nyoj 170)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=170 根据题意,需要找到度数为1的结点个数,如下图: #include<iostream> #include<cstdio> #include<cstring> #include<vector> using namespace std; #define N 10002 vector<int> g[N]; int main() { freo

[河南省ACM省赛-第三届] 房间安排 (nyoj 168)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=168 分析:找到一天中需要最多的房间即可 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; #define N 200 int day[N];//day[i] 第i天的最多房间数 int main() { fre

[河南省ACM省赛-第三届] AMAZING AUCTION (nyoj 251)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=251 规则: 1.若某竞标价唯一,则胜出 2.若不存在唯一竞标价,则投标次数最少竞标价中标,存在多个时,选择价钱最低且最先投此价钱的为中标 #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define N 102 #define M 1002 struct N

[河南省ACM省赛-第三届] 聪明的kk (nyoj 171)

#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> using namespace std; #define INF 0x7fffffff #define INPUT freopen("d:\\in.txt", "r", stdin); #define OUTPUT freope

[河南省ACM省赛-第四届] Substring (nyoj 308)

练习使用字符串函数了. 1.字串的反转也是它的字串,2.最长,3.最先出现 string: #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> using namespace std; int main() { int t, n; string s; cin>>t; while(t--){ cin>&

[河南省ACM省赛-第五届] 试制品 (nyoj 542)

模拟 a 反应物集合 ; b 生成物集合; c 存在的化合物或单质集合; ans 新生成化合物集合 1.如果反应无均在已生成的化合物集合中,则完成反应,将合成物加入c集合 2.对每个方程式的反应物进行排序,方便加速查找 3.不停的搜索,直到没有新化合物生成. #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #inc

Mine Number(搜索,暴力) ACM省赛第三届 G

1 安装及下载client 端 2 什么是SVN(Subversion)? 3 为甚么要用SVN? 4 怎么样在Windows下面建立SVN Repository? 5 建立一个Working目录 6 新增档案及目录到Repository中 7 更新档案及目录 8 更新至特定版本 9 复制档案及目录 10 制作Tag或是Release 11 快速参考 11.1 取得(Checkout)Repository 11.2 更新(Update)档案或目录 11.3 新增(Add)档案或目录 11.4 提

[河南省ACM省赛-第五届] 最强DE 战斗力 (nyoj 541)

题解链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=541 几天前百度题解后用数学知识AC的,后来大牛说这是一道动态规划题. 网上的数学解题链接:http://blog.csdn.net/x314542916/article/details/8204583 d(i) = max{d(j)*d(n-j) | 1<= j <=n/2}; 用Java写比较简单 import java.math.BigInteger; import java.u