【poj1002】487-3279 题解&代码(c++)
来源:互联网 发布:网络稳定性测试软件app 编辑:程序博客网 时间:2024/06/06 03:43
题目链接
http://poj.org/problem?id=1002
题解
一道比较简单的模拟题,看懂题意就行,感觉自己处理输出的地方有些狼狈,而且一道模拟题这么卡常真的好吗。。不过这道题也让我学到东西了:char数组在不知道长度的情况下如何枚举,具体看代码吧。
代码
#include<iostream>#include<algorithm>#include<string.h>#include<stdio.h>#include<map>using namespace std;int vis[100000000];int n,flag;long long a[100005];char s[400];int chang(char x){ if (x>='0'&&x<='9') { int tmp=x-'0'; return tmp; } if (x>='A'&&x<='C') return 2; if (x>='D'&&x<='F') return 3; if (x>='G'&&x<='I') return 4; if (x>='J'&&x<='L') return 5; if (x>='M'&&x<='O') return 6; if (x>='P'&&x<='S') return 7; if (x>='T'&&x<='V') return 8; if (x>='W'&&x<='Y') return 9;}int main(){ scanf("%d",&n);flag=0; for (int i=1;i<=n;i++) { scanf("%s",s); long long tmp=0; for (int j=0;s[j];j++)//居然有这种操作吗! if (s[j]=='-') continue; else tmp=tmp*10+chang(s[j]); vis[tmp]++;a[i]=tmp; if (vis[tmp]>=2) flag=1; } if (!flag) { printf("No duplicates.\n"); return 0; } sort(a+1,a+1+n); for (int i=1;i<=n;i++) if (vis[a[i]]>=2) { int kk=1000000;int ans=a[i]; for (int j=1;j<=7;j++) { int tmp=ans/kk;ans%=kk;kk/=10; printf("%d",tmp); if (j==3) printf("-"); } printf(" %d\n",vis[a[i]]); vis[a[i]]=0; }}
阅读全文
1 0
- 【poj1002】487-3279 题解&代码(c++)
- [c]poj1002 487-3279
- POJ1002 题解
- poj1002 487-3279(电话号码重复次数)
- poj1002 487-3279 (简单字符串处理)
- POJ1002·487-3279
- POJ1002 487-3279
- POJ1002 487-3279
- POJ1002--487-3279
- poj1002 487-3279
- poj1002 487-3279
- POJ1002 487-3279
- poj1002 487-3279
- poj1002 487-3279(哈希)
- POJ1002 487-3279
- POJ1002--487-3279 翻译
- 【poj1002】487-3279
- POJ1002 487-3279
- 指向函数的指针
- mkconfig脚本分析
- 二叉树祖先
- MySQL进阶路:从小工到专家的必读书籍和必备工具
- Java zip/gzip文件压缩和解压缩
- 【poj1002】487-3279 题解&代码(c++)
- python的几种常用安装包的方式
- 主题六 函数(C语言核心)----36.函数调用行为
- EffectiveC++学习笔记-条款5|6
- 基于聚类的“图像分割”
- zabbix 配置监控项和web监控
- Linq的基本用法,代码
- Java 多文件夹合并
- Spring介绍