HDU 6015 Skip the Class

Skip the Class

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ls rt<<1,l,m
#define rs rt<<1|1,m+1,r
#define pb push_back
#define mem(a,b) memset((a),(b),sizeof(a))
const int INF=0x3f3f3f3f;
const int N=105;
struct lesson
{
    string s;
    int v;
    operator < (const lesson &t) const
    {
        return v>t.v;
    }
}a[N];
map<string,int>mp;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t;
    cin>>t;
    while(t--)
    {
        mp.clear();
        int n;
        cin>>n;
        for(int i=0;i<n;i++)cin>>a[i].s>>a[i].v;
        sort(a,a+n);
        int ans=0;
        for(int i=0;i<n;i++)
        {
            if(mp[a[i].s]<2)
            {
                ans+=a[i].v;
                mp[a[i].s]++;
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}
时间: 2024-12-25 07:50:21

HDU 6015 Skip the Class的相关文章

hdu 6015

题意:n节课,然后给出课程名和翘课价值,每个课程不能逃课超过2次,问得到的最大逃课价值 思路:按照价值排序,然后得到最大价值的2次,哦了. 1 #include<bits/stdc++.h> 2 using namespace std; 3 struct node 4 { 5 string s; 6 int x; 7 }a[103]; 8 bool cmp(node p,node q){ 9 return p.x>q.x; 10 } 11 map<string ,int >b

杭电多校(四)2019.7.31--暑假集训

[HDU 6014] SOLVED [题目大意]给定N个节点,两点之间距离是节点编号的与,在这样的前提下,求最小生成树,输出代价和路径 [思路]通过lowbit求第一个0的位置,然后令此位为1的值就是最优解 [总结]1.与或非都要先考虑拆分后二进制的特性 2.检验算法正确性时,验证数据要是自己验证能力的最大值 (就是多验) #include<iostream> #include<algorithm> #include<vector> #include<stack&

hdu 2019多校 Just Skip The Problem

题目传送门:Just Skip The Problem 思路: n<=1e9. 最优方案,即对每位进行询问,一共n个二进制位.方案数->n! 由于题目中让你总方案数 % 1e6+3. 则可以想到, n>=1e6+3 的时候,全都是0.前面的则先打表预处理就好. 代码: #include<bits/stdc++.h> using namespace std; #define ll long long const int maxn=1e6+10; const int mod=1e

hdu 2999 sg函数(简单博弈)

Stone Game, Why are you always there? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 393    Accepted Submission(s): 132 Problem Description "Alice and Bob are playing stone game...""E

hdu 2725

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2725 题意:给一个字符串表示一条河.'.'表示水,其它字符表示障碍.人在岸上用石子打水漂,每次可以选择一个击中的距离和跳跃间隔.石子多次跳跃后击中障碍物或越过河则结束.每种打水漂的方案按跳跃次数(大者优).最后在河中的距离(大者优).起始位置(大者优).跳跃间隔(小者优)比较,问最好的方案是哪种. mark:无坑.直接写就好. #include <stdio.h> #include <strin

HDU 4614 Vases and Flowers 线段树+二分

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4614 题意:N个花瓶,两种操作. 操作1:从第a个花瓶开始放花,放最多f个,如果花瓶已经有花就跳过,直到放完,或者无更多花瓶,要求输出这次放花的第一个位置和最后一个位置,如果没放就输出Cannot... 操作2:将花瓶a到b区间内的花都扔了,然后输出扔掉的花的数目. 解题思路:花瓶有花为0,无花为1,那么实际上这是一个区间更新以及求和,求左右端点的问题.线段树节点维护一个 sum--区间和,lid-

HDU 5724 Chess(国际象棋)

HDU 5724 Chess(国际象棋) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Description 题目描述 Alice and Bob are playing a special chess game on an n × 20 chessboard. There are several chesses on the chessboard. They can mo

HDU 4614 线段树+二分查找

Vases and Flowers 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4614 Problem Description Alice is so popular that she can receive many flowers everyday. She has N vases numbered from 0 to N-1. When she receive some flowers, she will try to put them

HDU 6203 ping ping ping [LCA,贪心,DFS序,BIT(树状数组)]

题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=6203] 题意 :给出一棵树,如果(a,b)路径上有坏点,那么(a,b)之间不联通,给出一些不联通的点对,然后判断最少有多少个坏点. 题解 :求每个点对的LCA,然后根据LCA的深度排序.从LCA最深的点对开始,如果a或者b点已经有点被标记了,那么continue,否者标记(a,b)LCA的子树每个顶点加1. #include<Bits/stdc++.h> using namespace std;