zoukankan      html  css  js  c++  java
  • Codeforces Gym101606 D.Deranging Hat (2017 United Kingdom and Ireland Programming Contest (UKIEPC 2017))

    D Deranging Hat

    这个题简直了,本来想的是冒泡排序然后逆着输出来的,后来发现不对,因为题目上求的是最优解,而且冒泡的话,输出结果有的超出10000行了,所以就是把一开始的,排好序的字母标记一下位置,然后再把要求的串的位置记录一下,从大到小输出来,鬼知道这道题到底要干嘛,反正有人写出来了而且他自己都解释不清楚他为什么这么写。。。

    代码:(不是我的)

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 #include<cstdio>
     5 #include<math.h>
     6 #include<cstdlib>
     7 #include<set>
     8 #include<map>
     9 #include<stack>
    10 #include<queue>
    11 #include<vector>
    12 #include<set>
    13 #define ll long long int
    14 #define INF 0x3f3f3f3f
    15 #define mod 1000000007
    16 #define me(a,b) memset(a,b,sizeof(a))
    17 using namespace std;
    18 struct node{
    19     char str;
    20     int pi;
    21 }s[1005];
    22 char str[1005];
    23 int a[10005],b[10005],c;
    24 bool cmp(node a,node b){
    25     if(a.str!=b.str) return a.str<b.str;
    26     return a.pi<b.pi;
    27 }
    28 int main(){
    29     scanf("%s",&str);
    30     int l=strlen(str);
    31     for(int i=0;i<l;i++){
    32         s[i].str=str[i];
    33         s[i].pi=i;
    34     }
    35     sort(s,s+l,cmp);
    36     c=0;
    37     int n[1005];
    38     for(int i=0;i<l;i++){
    39         n[s[i].pi]=i;
    40     }
    41     for(int i=0;i<l;i++){
    42         if(s[i].pi!=i){
    43             a[c]=i;
    44             b[c]=s[i].pi;
    45             c++;
    46             int pre=s[i].pi;
    47             int now=n[i];
    48             swap(s[now],s[i]);
    49             n[pre]=now;
    50         }
    51     }
    52     for(int i=c-1;i>=0;i--){
    53         printf("%d %d
    ",b[i]+1,a[i]+1);
    54     }
    55     return 0;
    56 }
  • 相关阅读:
    转:Visio之取消自动对齐与粘附
    转:Excel怎样修改图例名称
    一张图说明学习率和loss之间的关系
    转:loss不收敛或不下降问题处理经验
    N-UCLA骨架数据可视化
    转:IEEE论文投稿流程(格式说明,新手指南,模板)
    Ubuntu下无法安装sun-java6-jdk的解决办法
    Git 学习笔记一
    轮播特效小项目总结
    第9次作业--接口及接口回调
  • 原文地址:https://www.cnblogs.com/ZERO-/p/9703438.html
Copyright © 2011-2022 走看看