http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1024

01排序

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交:708            测试通过:258

描述

将01串首先按长度排序,长度相同时,按1的个数多少进行排序,1的个数相同时再按ASCII码值排序。

输入

输入数据中含有一些01串,01串的长度不大于256个字符。

输出

重新排列01串的顺序。使得串按基本描述的方式排序。

样例输入

10011111
00001101
1010101
1
0
1100

样例输出

0
1
1100
1010101
00001101
10011111

题目来源

ZJUT

 #include<iostream>
#include<string>
//#include<fstream>
#include<vector>
using namespace std;
class Node
{
public:
string str;
int len;
int oneNum;
Node(string s)
{
str = s;
this->len = str.length();
int tmp = ;
for (size_t i = ; i<len; i++)
if (str[i] == '') tmp++;
oneNum = tmp;
}
}; int cmp(Node& node1, Node& node2)//-1表示node1排在前面0表示node1和node2相等1表示node1排在node2后面
{
if (node1.len<node2.len)
return -;
else if (node1.len>node2.len) return ;
else //长度相等
{
if (node1.oneNum == node2.oneNum)//一的数目相等
{
size_t i;
for (i = ; i<node1.len; i++){//比较ASCLL码值
if (node1.str[i]<node2.str[i]) return -;
else if (node1.str[i]>node2.str[i]) return ;
}
if (i == node1.oneNum) return ;//二者相等
}
else if (node1.oneNum<node2.oneNum) return -;
else //node1中1的数目比node2的多
return ;
}
return ;
}
int main()
{
//ifstream ifile("D:\\eee.txt");
string str;
vector<Node> nVec;
while (cin>>str)
{
Node node(str);
if (true == nVec.empty())
nVec.push_back(node);
else
{
vector<Node>::iterator iter = nVec.begin();
for (iter; iter != nVec.end(); iter++){
if (cmp(*iter, node) == ){
nVec.insert(iter, node);
break;
}
if (cmp(*iter, node) == ){
nVec.insert(iter, node);
break;
}
if (cmp(*iter, node) == -)
;
if (iter == nVec.end()-){
//nVec.insert(iter, node);
nVec.push_back(node);
break;
} } }
}
for (size_t i = ; i<nVec.size(); i++)
{
cout << nVec[i].str << endl;
}
return ;
}

ACM——01排序的更多相关文章

  1. 2546 ACM 01背包

    题目http://acm.hdu.edu.cn/showproblem.php?pid=2546 思路:再01背包的问题上稍作修改 如何满足 :卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购 ...

  2. 九度OJ 1339:ACM (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:712 解决:379 题目描述: 今年的ACM世界总决赛快要开始了,需要有一个排名算法来对每支队伍进行现场排名.ACM组委会把这个任务交给了你 ...

  3. 01排序的Java实现

    比赛描写叙述: 的个数同样时再按ASCII码值排序. 输入: 个字符. 输出: 串的顺序.使得串按基本描写叙述的方式排序. 例子输入: 例子输出: 被AC的代码例如以下: import java.ut ...

  4. ACM——简单排序

    简单选择排序 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:836            测试通过:259 描述 给定输入排序元素 ...

  5. [笔记]ACM笔记 - 排序小技巧

    Description 一个数组,要求先对前n个数字排序(以方便后续操作):又要求对前n+i个数字排序:又要求对前n+j - 前n+k个数字排序(i.j.k的大小远小于n,且i.j.k间没有大小关系) ...

  6. acm.njupt 1001-1026 简单题

    点击可展开上面目录 Acm.njupt 1001-1026简单题 第一页许多是简单题,每题拿出来说说,没有必要,也说不了什么. 直接贴上AC的代码.初学者一题题做,看看别人的AC代码,寻找自己的问题. ...

  7. Super Object Toolkit (支持排序)

    (* * Super Object Toolkit * * Usage allowed under the restrictions of the Lesser GNU General Public ...

  8. superobject 设定排序方式

    (* * Super Object Toolkit * * Usage allowed under the restrictions of the Lesser GNU General Public ...

  9. JZOJ4605. 排序(线段树合并与分裂)

    题目大意: 每次把一个区间升序或降序排序,最后问一个点是什么. 题解: 如果只是问一个点,这确乎是个经典题,二分一下答案然后线段树维护01排序. 从pty那里get到了可以用线段树的合并与分裂实时地维 ...

随机推荐

  1. HDU-4690 EBCDIC 映射,模拟,沙茶

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4690 纯沙茶模拟题... //STATUS:C++_AC_93MS_228KB #include &l ...

  2. nyoj 79 拦截导弹

    拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到 ...

  3. android系统自带图标集合(android.R.drawable查看)

    alert_dark_frame alert_light_frame arrow_down_float arrow_up_float bottom_bar btn_default btn_defaul ...

  4. 【STL学习】智能指针之weak_ptr

    简介 weak_ptr是shared_ptr的观察者,它不会干扰shared_ptr所共享对象的所有权,当一个weak_ptr所观察的shared_ptr要释放它的资源时,它会把相关的weak_ptr ...

  5. PowerDesigner 物理数据模型(PDM)

    PowerDesigner 物理数据模型(PDM) 说明 数据库脚本sqldatabasegeneration存储   目录(?)[+]   一.     PDM 介绍 物理数据模型(Physical ...

  6. mysql slow log分析工具的比较

    mysql 中的 slow log 是用来记录执行时间较长(超过 long_query_time 秒)的 sql 的一种日志工具. 启用 slow log 在 my.cnf 中设置 [mysqld] ...

  7. 将SCOM2007代理升级到 System Center 2012 SP1

    使用以下过程可以升级到 System Center 2012 Service Pack 1 (SP1), Operations Manager工程师.您应首先验证代理程序满足最小受支持的配置.有关详细 ...

  8. 使用 Windows 窗体 TextBox 控件创建密码文本框

    密码框是一种 Windows 窗体文本框,它在用户键入字符串时显示占位符. 创建密码文本框 将 TextBox 控件的 PasswordChar 属性设置为某个特定字符. PasswordChar 属 ...

  9. Aizu 2306 Rabbit Party DFS

    Rabbit Party Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view. ...

  10. unity3D Socket连接C#server出现unity3D编辑器再次启动连接 unity3D编辑器马上卡死

    unity3D Socket与C#server第一次连接时通讯正常.客服端段关闭后.unity3D编辑器再次启动连接 unity3D编辑器马上卡死 原因是Socket处于异步状态,而异步线程是不受Un ...