题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=2866&rd=5853

主要是要对字符串的操作要熟悉,熟练使用 sstream 流可以大大简化操作,如这个题目,如果不用 sstream 流的话,用 sscanf 函数非常麻烦,因为输入的数据中数字的个数不是一样的,还有一个问题就是多关键字的排序,用 sort 函数时要自己写比较函数。

另外那个得到实现四则运算的方法也很巧妙,我刚始用的方法比较麻烦,这种方法看别人代码知道的。

代码如下:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>using namespace std;class RegularSeason
{
public:vector <string> finalStandings(vector <string> teams, int rounds);
};struct Team {int wins;string name;
};/* 比较函数 */
bool operator< (const Team &a, const Team &b)
{if ( a.wins != b.wins ) {return a.wins > b.wins;   /* 按 wins */} else {    return a.name < b.name;  /* 按 name */}
};vector <string> RegularSeason::finalStandings(vector <string> teams, int rounds)
{int num = teams.size();int prob;vector <Team> vt(num);vector <string> ans;for (int i = 0; i < num; i++) {vt[i].wins = 0;}for (int i = 0; i < num; i++) {istringstream iss(teams[i]);iss >> vt[i].name;for (int j = 0; j < num; j++) {iss >> prob;  /* 得到羸的可能值 */if (i != j) {     /* 更新期望值 */vt[j].wins += rounds * (100 - prob);vt[i].wins += rounds * prob;}    }}sort(vt.begin(), vt.end());for (int i = 0; i < num; i++) {ostringstream oss;int iwins = vt[i].wins;string teamname = vt[i].name;/* 四舍5入约分 */iwins = (iwins + 50) / 100;oss << teamname << " " << iwins;ans.push_back(oss.str());}return ans;
}

转载于:https://www.cnblogs.com/snake-hand/p/3177899.html

SRM 207 Div II Level Two: RegularSeason,字符串操作(sstream),多关键字排序(操作符重载)...相关推荐

  1. SRM 212 Div II Level One: YahtzeeScore

    题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=1692&rd=5858 比较简单. 代码如下: #inc ...

  2. SRM 587 Div II L3:ThreeColorabilityEasyy

    题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12699 这道题目是第一次在比赛的时候做出来的,开始还想用bru ...

  3. Topcoder口胡记 SRM 562 Div 1 ~ SRM 599 Div 1

    据说做TC题有助于提高知识水平? :) 传送门:https://284914869.github.io/AEoj/index.html 转载请注明链接:http://www.cnblogs.com/B ...

  4. 剑指 Offer II 117. 相似的字符串

    链接:剑指 Offer II 117. 相似的字符串 题解: 1.建设图 2.bfs遍历 class Solution { public:int numSimilarGroups(vector< ...

  5. day15-JavaScript字符串操作以及跑马灯示例

    一.概述 今天我们就来说说Javascript的字符串操作,以及跑马灯的示例,这个场景我们经常用到,所以好好研究一下. 二.定义变量 1.定义局部变量 说明:99%的情况下,都是定义的局部变量.定义局 ...

  6. JS一起学05:Date对象、封闭空间、函数传参和封装、获取非行间样式、字符串操作

    一.Date对象 1. 获取 oDate.getFullYear() 获取年份 oDate.getMonth()+1  获取月份 0-11----->1-12 oDate.getDate() 获 ...

  7. python数据分析第七章实训3_《利用Python进行数据分析·第2版》第7章 数据清洗和准备7.1 处理缺失数据7.2 数据转换7.3 字符串操作7.4 总结...

    在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载.清理.转换以及重塑.这些工作会占到分析师时间的80%或更多.有时,存储在文件和数据库中的数据的格式不适合某个特定的任务.许多研究者都选择使 ...

  8. 一个非常好的C#字符串操作处理类StringHelper.cs

    1 /// <summary> 2 /// 类说明:Assistant 3 /// 编 码 人:苏飞 4 /// 联系方式:361983679 5 /// 更新网站:http://www. ...

  9. Learn day2 运算/循环/字符串操作

    1.容器类型的强制转换 类型:str list tuple set dict var1 = "今天天气好晴朗朗"var2 = ["刘璐","王钊&qu ...

最新文章

  1. java 上传的图片大小为0_JAVA技术:上传图片的缩放处理
  2. 如何利用微信小游戏的分包加载机制突破4M代码包体积限制
  3. 在docker中haproxy的安装以及mysql的负载均衡配置
  4. 利用人工智能保护生物多样性
  5. LINUX 运维工作手册
  6. pthread属性使用(转)
  7. JVM基于栈的解释器执行原理
  8. python面向对象类_python:面向对象(类)
  9. leetcode136 只出现一次的数字
  10. 企业级开源电商系统5vShop商城系统源码v1.9.5
  11. /usr/bin/ld: cannot find -lstdc++ -lz问题
  12. Python入门教程!手把手教会你爬取网页数据
  13. upnp 文件服务器,upnp服务器
  14. 手机无法连接电脑热点解决方案
  15. Java中的23种设计模式的介绍
  16. 这38款超级炫酷的时间轴特效代码案例,总有一款是你需要的
  17. mac 装java ecli_Eclipse下Maven安装和配置
  18. Harmonious
  19. Django实战教程
  20. 不能换行 俄语 前端h5_H5兼容问题及解决方法

热门文章

  1. 概率语言模型及其变形系列-LDA及Gibbs Sampling
  2. 关于马尔科夫随机场MRF的思考
  3. 扫地机器人水箱背景_家友扫地机器人拖地水箱配件(米家扫地机器人1代版)体验(Case Closed)...
  4. 用matlab画声偶级辐射,matlab结题报告(电偶极子的辐射场)
  5. 评分卡模型开发(九)--上线监测
  6. 5. 吴恩达机器学习课程-作业5-偏差和方差
  7. POJ 1755 Triathlon(半平面交)
  8. 跟我学算法-集成算法
  9. 使用qq邮箱服务器来实现laravel的邮件发送
  10. iOS开发之控制器之间传值