UVA, 10336 Rank the Languages
- 难点在于:递归函数和输出;
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <map>
- using namespace std;
- class Rank{
- private:
- int length,width,ans=0;
- char c;
- vector <char> v;
- int a[26][1000];
- map <char,int> m; //output
- char field[1000][1000];
- public:
- void Readcase(){
- cin>>width>>length;
- for(int i=0;i<width;i++){
- for(int j=0;j<length;j++){
- cin>>field[i][j];
- }
- }
- }
- void Computing(){
- for(int i=0;i<width;i++)
- for(int j=0;j<length;j++){
- vector<char>::iterator it=find(v.begin(),v.end(),field[i][j]);
- if(it!=v.end()) continue; //找到了
- else v.push_back(field[i][j]);
- }
- for(int i=0;i<v.size()-1;i++)
- if(v[i]>v[i+1]) swap(v[i],v[i+1]);
- for(int k=0;k<v.size();k++){
- c=v[k];
- for(int i=0;i<width;i++){
- for(int j=0;j<length;j++){
- if(field[i][j]==c){
- dfs(i,j);
- ans++;
- }
- }
- }
- m.insert(map<char,int>::value_type(c,ans));
- ans=0;
- }
- }
- void Output(){
- int l=m.size(),max;
- map<char,int>::iterator it3;
- while(l--){
- max=m.begin()->second;
- for(map<char,int>::iterator it2=m.begin();it2!=m.end();it2++){
- if(it2->second>max) max=it2->second;
- }
- for(it3=m.begin();it3!=m.end();it3++){
- if(max==it3->second) break;
- }
- cout<<it3->first<<": "<<it3->second<<endl;
- m.erase(it3);
- }
- }
- void dfs(int x,int y){
- field[x][y]='*'; //标记这个地方已经找过了
- if(0<=x&&x<width&&0<=y&&(y-1)<length&&field[x][y-1]==c){
- dfs(x,y-1);
- }
- if(0<=x&&x<width&&0<=y&&(y+1)<length&&field[x][y+1]==c){
- dfs(x,y+1);
- }
- if(0<=(x+1)&&(x+1)<width&&0<=y&&y<length&&field[x+1][y]==c){
- dfs(x+1,y);
- }
- if(0<=(x-1)&&(x-1)<width&&0<=y&&y<length&&field[x-1][y]==c){
- dfs(x-1,y);
- }
- }
- };
- int main()
- {
- int cases;
- cin>>cases;
- for(int i=1;i<=cases;i++){
- Rank r;
- r.Readcase();
- r.Computing();
- cout<<"World #"<<i<<endl;
- r.Output();
- }
- return 0;
- }
UVA, 10336 Rank the Languages的更多相关文章
- [uva] 1671 History of Languages
题目描述 输入两个DFA,判断是否等价. https://uva.onlinejudge.org/external/16/1671.pdf 输入 第一行T 可以接受的字母表 第二行N 状态数 接下去N ...
- UVA 10887 Concatenation of Languages 字符串hash
题目链接:传送门 题意: 给你两个集合A,B,任意组合成新的集合C(去重) 问你最后C集合大小 题解: 暴力 组成的新串hash起来 #include<bits/stdc++.h> usi ...
- OJ题解记录计划
容错声明: ①题目选自https://acm.ecnu.edu.cn/,不再检查题目删改情况 ②所有代码仅代表个人AC提交,不保证解法无误 E0001 A+B Problem First AC: 2 ...
- 2534: Uva10829L-gap字符串
2534: Uva10829L-gap字符串 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 177 Solved: 66[Submit][Statu ...
- 几道hash题
1: UVa 10887 - Concatenation of Languages map 可以做 ,但是输入实在恶心,有空串之类的HASH模板: int Hash(char *s){ int s ...
- UVa 112 - Tree Summing(树的各路径求和,递归)
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...
- 图-用DFS求连通块- UVa 1103和用BFS求最短路-UVa816。
这道题目甚长, 代码也是甚长, 但是思路却不是太难.然而有好多代码实现的细节, 确是十分的巧妙. 对代码阅读能力, 代码理解能力, 代码实现能力, 代码实现技巧, DFS方法都大有裨益, 敬请有兴趣者 ...
- uva 387 A Puzzling Problem (回溯)
A Puzzling Problem The goal of this problem is to write a program which will take from 1 to 5 puzz ...
- Uva 120 - Stacks of Flapjacks(构造法)
UVA - 120 Stacks of Flapjacks Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld &a ...
随机推荐
- 首个threejs项目-前端填坑指南
第一次使用threejs到实际项目中,开始的时候心情有点小激动,毕竟是第一次嘛,然而做着做着就感受到这玩意水好深,满满的都是坑,填都填不过来.经过老板20天惨无人道的摧残,终于小有成就. 因为第一次搞 ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- Redis/HBase/Tair比较
KV系统对比表 对比维度 Redis Redis Cluster Medis Hbase Tair 访问模式 支持Value大小 理论上不超过1GB(建议不超过1MB) 理论上可配置(默认配置1 ...
- CentOS7使用firewalld打开关闭防火墙与端口(转载)
1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disabl ...
- ExecuteOrDelayUntilScriptLoaded 还是 SP.SOD.executeFunc?
SharePoint 客户端 JS 开发时,要等待 SharePoint 对象都加载完毕再调用自己的方法(myFunction),可以有两种方式: ExecuteOrDelayUntilScriptL ...
- linux下安装Redis以及phpredis模块
一:redis的安装 1. 首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载 2. 通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作 3. ...
- php+websocket搭建简易聊天室实践
1.前言 公司游戏里面有个简单的聊天室,了解了之后才知道是node+websocket做的,想想php也来做个简单的聊天室.于是搜集各种资料看文档.找实例自己也写了个简单的聊天室. http连接分为短 ...
- ASP.NET Aries JSAPI 文档说明:AR.Utility
AR.Utility 文档 1:方法: 名称 说明 queryString function (key) *模拟.NET的Request对象 stringFormat function (str, a ...
- 【腾讯Bugly干货分享】微信终端跨平台组件 mars 系列(二) - 信令传输超时设计
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/9DJxipJaaBC8yC-buHgnTQ 作者简介: ...
- Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...