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

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

 #include<bits/stdc++.h>
#define INF 0x7fffffff
#define LL long long
#define N 100005
#define pill pair<int ,int >
using namespace std;
inline int ra()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
struct Node{
int val;
string s;
}node[N];
map<string, multiset<int > > dic;
LL ans;
int n,k,m;
bool cmp(Node a, Node b)
{
return a.val>b.val;
}
int main()
{
n=ra(); m=ra();
for (int i=; i<n; i++)
{
cin>>node[i].s>>node[i].val;
dic[node[i].s].insert(node[i].val);
}
int k=,x=,tmp=;
for (int i=; i<n; i++)
{
string s1=node[i].s;
if (dic[s1].size()==) continue;
int val=(*dic[s1].rbegin());
if (val<) continue;
reverse(s1.begin(),s1.end());
dic[node[i].s].erase(dic[node[i].s].find(val));
if (dic[s1].size()!=)
{
tmp=(*dic[s1].rbegin());
dic[s1].erase(dic[s1].find(tmp));
if (val+tmp>=)
{
ans+=val+tmp;
if (s1==node[i].s)
x=max(-tmp,x);
}
else if (s1==node[i].s)
x=max(x,val);
}
else if (s1==node[i].s) x=max(val,x);
}
cout<<ans+x;
return ;
}

最新文章

  1. Win32 设置窗口透明度 SetLayerTransparent
  2. How can i use iptables save on centos 7?
  3. AJAX--XMLHttpRequest Object 知识整理
  4. Nginx初学者指南
  5. BZOJ1110: [POI2007]砝码Odw
  6. linux详细redis安装和php中redis扩展
  7. python 类的初始化
  8. 理解JavaScript设计模式与开发应用中发布-订阅模式的最终版代码
  9. 热门usb无线网卡
  10. 编译 ORB_SLAM2 (一)
  11. android弹出dialog后,activity得到焦点
  12. SQL 性能优化 总结
  13. Go语言代码规范指导
  14. bzoj2004(矩阵快速幂,状压DP)
  15. python数据分析之csv/txt数据的导入和保存
  16. 2015年IPC网络摄像机技术发展现状分析
  17. linux shell 总结
  18. git修改密码
  19. Springboot演示小Demo
  20. Swing简介

热门文章

  1. [Educational Codeforces Round 81 (Rated for Div. 2)]E. Permutation Separation(线段树,思维,前缀和)
  2. 想要转战CSDN了!!
  3. 浅析 URL
  4. P1076 Wifi密码
  5. POJ 3274:Gold Balanced Lineup 做了两个小时的哈希
  6. Metasploit学习笔记——情报搜集技术(只记录与metasploit有关的)
  7. jpa自定义sql语句
  8. ShowDialog()之后,主窗体失去焦点
  9. 修正png
  10. 获取url特定字后面的参数