C# ACM poj1007
求逆序数,快排
public static void acm1007(int a, string[] c)
{
Dictionary<int, string> dic = new Dictionary<int, string>();
int[] i = new int[a];
var j = ;
foreach (var item in c)
{
int k = Acm1007Unit(item);
if (!dic.ContainsKey(k))
{
i[j] = k;
j++;
dic.Add(k, item + ",");
}
else
{
dic[k] += item + ",";
i[j] = -;
j++;
}
}
QSortDIY(i, , i.Length - ); for (int jjj = ; jjj < i.Length ; jjj++)
{
if (i[jjj] != -)
{
Console.Write(dic[i[jjj]]);
}
} }
public static int Acm1007Unit(string a)
{
int anum = ;
int cnum = ;
int gnum = ; int r = ;
for (int i = a.Length - ; i >= ; i--)
{
switch (a[i])
{
case 'A':
anum++;
break;
case 'C':
r += anum;
cnum++;
break;
case 'G':
r += anum + cnum;
gnum++;
break;
case 'T':
r += anum + cnum + gnum;
break;
}
}
return r;
}
public static void QSortDIY(int[] array, int low, int high)
{
if (low >= high)
{
return;
}
int ie = QSortUnit(array, low, high);
QSortDIY(array, low, ie - );
QSortDIY(array, ie + , high);
}
private static int QSortUnit(int[] array, int low, int high)
{
int key = array[low];
while (low < high)
{
while (array[high] >= key && high > low)
{
--high;
}
array[low] = array[high];
while (array[low] <= key && high > low)
{ ++low;
}
array[high] = array[low];
}
array[low] = key;
return high;
}
C# ACM poj1007的更多相关文章
- ACM训练计划建议(写给本校acmer,欢迎围观和指正)
ACM训练计划建议 From:freecode# Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...
- ACM训练计划建议(转)
ACM训练计划建议 From:freecode# Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...
- 北大ACM - POJ试题分类(转自EXP)
北大ACM - POJ试题分类 -- By EXP 2017-12-03 转载请注明出处: by EXP http://exp-blog.com/2018/06/28/pid-38/ 相关推荐文: 旧 ...
- SCNU ACM 2016新生赛决赛 解题报告
新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...
- SCNU ACM 2016新生赛初赛 解题报告
新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...
- acm结束了
最后一场比赛打完了.之前为了记录一些题目,开了这个博客,现在结束了acm,这个博客之后也不再更新了. 大家继续加油!
- 关于ACM的总结
看了不少大神的退役帖,今天终于要本弱装一波逼祭奠一下我关于ACM的回忆. 从大二上开始接触到大三下结束,接近两年的时间,对于大神们来说两年的确算不上时间,然而对于本弱来说就是大学的一半时光.大一的懵懂 ...
- 第一届山东省ACM——Phone Number(java)
Description We know that if a phone number A is another phone number B’s prefix, B is not able to be ...
- 第一届山东省ACM——Balloons(java)
Description Both Saya and Kudo like balloons. One day, they heard that in the central park, there wi ...
随机推荐
- 认识CoreData-高级用法
来源:伯乐在线专栏作者 - 刘小壮 链接:http://ios.jobbole.com/87293/ 点击 → 了解如何加入专栏作者 认识CoreData-初识CoreData 认识CoreData- ...
- .NET常用操作小知识
一..NET截取指定长度汉字超出部分以“.....”表示 /// <summary> /// 将指定字符串按指定长度进行剪切, /// </summary> /// <p ...
- SUSE的SSHD配置及设置防火墙
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- Spring3 MVC Login Interceptor(Spring 拦截器)
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- hdu 5441 Travel 离线带权并查集
Travel Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5441 De ...
- 关于开源的RTP——jrtplib的使用
session.BeginDataAccess(); if (session.GotoFirstSource()){ do{ RTPPacket *packet; while ((packet = s ...
- 新闻客户端nices
https://github.com/android-cjj/nices
- 《高级Perl编程》 读书笔记
http://blog.chinaunix.net/uid-20767124-id-1849881.html
- css中那些你可能没注意到的东西
1.inline元素,添加position:absolute;可定宽高,position:relative;则不行,不信你试试! 2.inline元素添加浮动后,不用加display:block;也可 ...
- windows远程关机重启
windows远程关机 http://lsscto.blog.51cto.com/779396/245681 shutdown http://baike.baidu.com/view/596875.h ...