0000000
2016-06-21 14:09
246 查看
题目: 竞选时,要求选民在n个候选人中选择,n个人的名字为 A,B,C,D……连续n个大写字母,如果选择n个人名字之外的人员,则为废票。 统计时以输入’#’为结束标记。请按候选人的得票数目从大到小顺序输出候选人的名字及得票情况。 Time Limit Exceeded #include<iostream> #include<algorithm> using namespace std; int n,c; char na[233]; struct ren { char name; int sum; }ren['a']; void init() { cin>>n; for(char i='A';i<='A'+n;i++) { ren[i].name=i; } for(int i=1;;i++) { cin>>na[i]; c++; if(na[i]=='#') break; } } void work() { for(int i=1;i<c;i++) { for(char j='A';j<='A'+n;j++) { if(na[i]==j) { ren[j].sum=ren[j].sum+1; break; } } } for(char i='A';i<'A'+c-1;i++) { for(char j=i+1;j<'A'+c;j++) { if(ren[i].sum<ren[j].sum) swap(ren[i],ren[j]); } } } void print() { for(int i='A';i<'A'+n;i++) { cout<<ren[i].name<<" "<<ren[i].sum<<endl; } } int main() { init(); work(); print(); return 0; } 正解: #include<iostream> #include<algorithm> using namespace std; int n,c; char na[2333]; struct ren { char name; int sum; }ren['a']; void init() { cin>>n; for(char i='A';i<'A'+n;i++) { ren[i].name=i; } for(int i=1;;i++) { cin>>na[i]; c++; if(na[i]=='#') break; } } void work() { for(int i=1;i<c;i++) { if(na[i]>'Z') break; for(char j='A';j<'A'+n;j++) { if(na[i]==j) { ren[j].sum=ren[j].sum+1; break; } } } for(char i='A';i<'A'+n;i++) { for(char j=i+1;j<='A'+n;j++) { if((ren[i].sum<ren[j].sum)||((ren[i].sum==ren[j].sum)&&(ren[i].name>ren[j].name))) swap(ren[i],ren[j]); } } } void print() { for(int i='A';i<'A'+n;i++) { cout<<ren[i].name<<":"<<ren[i].sum<<endl; } } int main() { init(); work(); print(); return 0; }
相关文章推荐
- NSRunLoop的注意要点
- Selenium 进行web自动化测试
- Linux 网络设备驱动开发(一) —— linux内核网络分层结构
- Linux 网络设备驱动开发(二) —— Linux 网络栈剖析
- Calendar类的基本使用
- Part 3: More about Backbone Models
- OOM解决方案
- TIME_WAIT状态引起的服务端重启失败问题
- 链式存储
- android中的AppWidget
- 10个简单步骤,完全理解SQL
- 根据当前传入日期计算该日期所在星期的周一和周日
- 你值得拥有的Android Studio开发小技巧
- Linux 下wifi 驱动开发(一)—— WiFi基础知识解析
- 在android studio中安装findbugs
- Gradle 打的包 Tomcat 解不开:LifecycleException
- 如何安装SAP JCo3
- Linux 下wifi 驱动开发(二)—— WiFi模块浅析
- 浏览器默认样式
- 使用原生HTML5上传文件