cf 478D.Santa Claus and a Palindrome

原来set,priority_queue也可以映射。。涨姿势2333

比较麻烦的应该就是判断自身回文的串是选2个还是选一个吧。

 1 #include<bits/stdc++.h>
 2 #define INF 0x7fffffff
 3 #define LL long long
 4 #define N 100005
 5 #define pill pair<int ,int > 
 6 using namespace std;
 7 inline int ra()
 8 {
 9     int x=0,f=1; char ch=getchar();
10     while (ch<'0' || ch>'9') {if (ch=='-') f=-1; ch=getchar();}
11     while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();}
12     return x*f;
13 }
14 struct Node{
15     int val;
16     string s;
17 }node[N];
18 map<string, multiset<int > > dic;
19 LL ans;
20 int n,k,m;
21 bool cmp(Node a, Node b)
22 {
23     return a.val>b.val;
24 }
25 int main()
26 {
27     n=ra(); m=ra();
28     for (int i=0; i<n; i++)
29     {
30         cin>>node[i].s>>node[i].val;
31         dic[node[i].s].insert(node[i].val);
32     }
33     int k=0,x=0,tmp=0;
34     for (int i=0; i<n; i++)
35     {
36         string s1=node[i].s;
37         if (dic[s1].size()==0) continue;
38         int val=(*dic[s1].rbegin());
39         if (val<0) continue;
40         reverse(s1.begin(),s1.end());
41         dic[node[i].s].erase(dic[node[i].s].find(val));
42         if (dic[s1].size()!=0)
43         {
44             tmp=(*dic[s1].rbegin());
45             dic[s1].erase(dic[s1].find(tmp));
46             if (val+tmp>=0)
47             {
48                 ans+=val+tmp;
49                 if (s1==node[i].s)
50                     x=max(-tmp,x);
51             }
52             else if (s1==node[i].s)
53                 x=max(x,val);
54         }
55         else if (s1==node[i].s) x=max(val,x);
56     }
57     cout<<ans+x;
58     return 0;
59 } 

 

转载于:https://www.cnblogs.com/ccd2333/p/6371284.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值