Sicily10393(二分)
来源:互联网 发布:yoast seo 网站地图 编辑:程序博客网 时间:2024/06/06 12:53
先将每个字符串按照字典序升序排序,存入strmin。
再将每个字符串按照字典序降序排序,存入strmax。
然后对于字符串i,其lowest的值为该字符串的字典序升序在strmax中的位置。
其hightest的值为该字符串的字典序降序在strmin中的位置再减去1,因为在strmin中的该位置前还有一个是该字符串的字典序升序,不应该考虑进去。
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;struct st{char str[25];}strmin[50005],strmax[50005];char str[50005][25];char now[25];bool cmp(char a,char b){ return a>b;}bool cmp2(struct st a,struct st b){if (strcmp(a.str,b.str)<0) return true; return false;}int binary_search_low(int l,int r){int mid=(l+r)/2;if (l<=r){if (strcmp(now,strmax[mid].str)<=0) return binary_search_low(l,mid-1); else return binary_search_low(mid+1,r);}return l;}int binary_search_high(int l,int r){int mid=(l+r)/2;if (l<=r){if (strcmp(now,strmin[mid].str)<0) return binary_search_high(l,mid-1); else return binary_search_high(mid+1,r);}return l-1;}int main(){int i,j;int n;scanf("%d",&n);for (i=0;i<n;i++){char s[25];scanf("%s",s);int length=strlen(s);sort(s,s+length);strcpy(strmin[i].str,s);sort(s,s+length,cmp);strcpy(strmax[i].str,s);strcpy(str[i],s);}sort(strmin,strmin+n,cmp2);sort(strmax,strmax+n,cmp2);for (i=0;i<n;i++){strcpy(now,str[i]);int length=strlen(now);sort(now,now+length);int low=binary_search_low(0,n-1)+1;sort(now,now+length,cmp);int high=binary_search_high(0,n-1)+1;printf("%d %d\n",low,high);}}
0 0
- Sicily10393(二分)
- 二分
- 二分
- 二分
- 二分
- 二分
- 二分。
- 二分
- 二分
- 二分
- 二分
- 二分
- 二分
- 二分
- 二分
- 二分~~
- 二分
- 二分
- 用C语言操作MySQL数据库
- hdu 1683 Colour sequence
- 陆川首度公开承认与秦岚分道扬镳 已失联很久
- CSS Position Fixed for IE6 用CSS解决ie6不支持position:fixed Bug
- Android - Handler
- Sicily10393(二分)
- PAT 1052. Linked List Sorting (25) 【分3种情况讨论】
- u盘故障丢失文件怎样恢复?
- python中使用urllib下载网站图片
- ios开发-获取系统相簿里边的所有照片
- DOM window 对象 属性 方法
- Linux定时执行PHP文件
- spring事物
- 平凡的一天