正题


大意

一些文件名,有的有后缀,有的没有。
现在要求(先满足前者)
1. 没有后缀的排最后
2. 后缀字典序
3. 名字字典序


解题思路

首先按后缀排序如果后缀一样就名字排序,然后两次枚举先搞定有后缀的在搞定没后缀的


代码

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct xjq{char s[9],h[4];int l,hl,nn,ans;
}k[101];
char s[20];
int n,name;
bool cmph(xjq x,xjq y)//排序
{bool f=x.hl==y.hl;for (int i=0;i<=min(x.hl,y.hl);i++)if(x.h[i]!=y.h[i]) f=false;//判断相等if (!f) {int ls=min(x.hl,y.hl);for (int i=0;i<=ls;i++)if (x.h[i]!=y.h[i])return x.h[i]<y.h[i];//后缀排序return x.hl<y.hl;}else{int ls=min(x.l,y.l);for (int i=0;i<=ls;i++)if (x.s[i]!=y.s[i]) return x.s[i]<y.s[i];//前缀排序return x.l<y.l;}
}
bool cmpn(xjq x,xjq y)//恢复初始状态
{return x.nn<y.nn;}
int main()
{scanf("%d",&n);for (int i=1;i<=n;i++){scanf("%s",s);bool f=false;int ll=strlen(s);k[i].nn=i;//标记for (int j=0;j<ll;j++)if (s[j]=='.') f=true;//之后读入后缀else if (!f)k[i].s[k[i].l++]=s[j];//读入名字else k[i].h[k[i].hl++]=s[j];//读入后缀k[i].hl--;k[i].l--;}sort(k+1,k+1+n,cmph);//排序for (int i=1;i<=n;i++)if (k[i].hl>=0)k[i].ans=++name;//标记名次for (int i=1;i<=n;i++){if (k[i].hl==-1)k[i].ans=++name;//标记名次}sort(k+1,k+1+n,cmpn);//恢复状态for (int i=1;i<=n;i++)printf("%d\n",k[i].ans);
}

【2018.5.19】模拟赛之二-ssl2433 文件名排序【字符串】相关推荐

  1. 2018,10,19模拟赛

    jz的题...写炸了不少暴力...还有容斥等不太熟练 T1以为n^2*m过不去,想了好久 归根到底还是我太蒻了qwq 存一下代码 t1 为了稳一点写了部分分...还没删,可以自行跳过ovo #incl ...

  2. 【2018.3.10】模拟赛之二-ssl2575 给出字符串【字符串】

    目录地址 前言 其实可以不用哈希的,好像会更慢.还有之前看错题了,所以会有些奇怪的地方 正题 给出一个字符串,求最长的至少出现过两次的子串 输入输出(需要自取) Input 输入文件ygas.in第一 ...

  3. 2018.10.9模拟赛

    2018.10.9模拟赛 T1 trade 正解:贪心 据说lyd讲过但并没有印象QAQ,考场上现推浪费了不少时间 其实就开个小根堆,每次把堆顶取出来看它是不是比当前的 a[i]a[i]a[i] 小, ...

  4. 【蓝桥】软件校内模拟赛(二)反倍数 题目+题解

    文章目录 前言 反倍数 题目描述 前言 本题解为第十一届软件类校内模拟赛个人题解,但非官方满分题解,因此,可能存在下列问题 题意理解错误,导致答案错误. 代码中存在一些问题,导致答案错误. 算法复杂度 ...

  5. 【蓝桥】第十一届软件类校内模拟赛(二)填空题部分

    起晚了起晚了,比赛都快结束了才整完qwq 文章目录 前言 填空题 1题目描述 2题目描述 3题目描述 4题目描述 前言 本题解为第十一届软件类校内模拟赛个人题解,但非官方满分题解,因此,可能存在下列问 ...

  6. EZ 2018 02 28 NOIP2018 模拟赛(二)

    我TM的终于改完了(其实都是SB题) 题目链接:http://211.140.156.254:2333/contest/53 T1送分,T2前40%送分,还有骗分机制在里面,T3暴力50 所以200应 ...

  7. 【2018.5.12】模拟赛之二-ssl2414 简写单词【字符串】

    正题 题目大意 若干个字符串,每个字符串求一个前缀,使只有这个字符串有这个前缀. 解题思路 O(n2)O(n2)O(n^2)枚举两个字符串,然后O(n)O(n)O(n)求出至少要取到哪里做前缀这两个字 ...

  8. 【2018.4.21】模拟赛之二-ssl2403 蜡烛【贪心】

    正题 大意 有n个蜡烛,第i个晚上要烧i根,没烧一个晚上蜡烛要消耗一个高度,求能烧多少个晚上. 解题思路 就是先烧高的,让剩下的蜡烛尽量多. 代码 #include<cstdio> #in ...

  9. 【2018.4.14】模拟赛之二-ssl2392 蚂蚁【图论】

    正题 大意 有n只蚂蚁,他们会往固定方向行走,行走速度相同,如果两只或多只相撞就会消除,求所有碰撞后剩余的蚂蚁数量 解题思路 将两只会相撞的蚂蚁碰撞的信息记录下来(包括需要多久后碰撞),然后将时间从小 ...

最新文章

  1. akka的介绍_Akka笔记–演员介绍
  2. Kettle7.1在window启动报错
  3. [转]命令行在IIS添加虚拟目录
  4. android9.0原生字体,iOS 9原生字体看腻了?不如学着去替换吧
  5. 二叉树的非递归遍历,还有一点黑科技
  6. HCIE-Security Day14:防火墙双机热备实验(二)防火墙直路部署,上下行连接路由器
  7. 所有IT人的大恩人永远的离开了
  8. v-for循环下动态绑定ref后undefine的解决方式
  9. 编译原理第三章学习总结
  10. 2022 VMware下载安装教程
  11. 2020年高压电工模拟考试题库及高压电工作业模拟考试
  12. 国产操作系统有哪些,你知道吗?
  13. october php,php – 如何调用组件内的组件[OctoberCMS]
  14. Linux下 Yum 是什么
  15. 盖茨自说不善招聘、管理:善于“借力”
  16. ZigBee智能开关和单火线取电技术
  17. redux-thunk-基本使用
  18. 盘点一下国内智能巡检机器人TOP5
  19. Jerry号召广大程序员同仁们,把身体锻炼好,每天把砖搬起来
  20. PyTorch深度学习实践 Lecture09 Softmax 分类器

热门文章

  1. php获取某地的ip,php获取本土实际IP
  2. mybatis collection标签_一对多的关系,在MyBatis中如何映射?
  3. js map对象遍历_前端测试题:有关于js中跨域请求的说法,错误的是?
  4. android websocket封装,Android WebSocket 方案选型OkHttp
  5. quill变html转化,将Quill Delta转换为HTML
  6. vue 插入word模板 项目_10 分钟为你的 vue 项目编写代码文档
  7. java实用教程——组件及事件处理——布局的一个小实例
  8. [Nginx]nginx 配置实例-动静分离
  9. 数据结构---前序和中序遍历的二叉树序列还原二叉树
  10. word List 09