loj 1109

本文探讨了一道排序难题的解决方法,通过引入结构体二级排序优化算法,成功解决了超时问题并实现了正确解答。文章详细阐述了算法优化的过程及背后的逻辑。

一道题想了老半天,结果还是TLE了

TLE:

#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
int compare(const void*a,const void*b)
{
return *(int*)a-*(int*)b;
}
int main()
{
int t,n,i,a[1001],b[1001];
int j;
cin>>t;
int T=1;
while(t--)
{
cin>>n;
memset(a,0,sizeof(a));
//memset(b,0,sizeof(b));
for(i=1;i<=1000;i++)
{
for(j=1;j<=i;j++)
{
if(i%j==0)a[i]++;//a[i]用来看记录i有a[i]个除数;
}
b[i]=a[i];//保存未排序前的a[i]的数据;
}
qsort(a+1,1000,sizeof(int ),compare);
cout<<"Case "<<T++<<": ";
int l=1;
int k=a[n];//记录a[n]的除数个数是k;
for(i=n-1;i>=1;i--)
{
if(a[i]==k)l++;
else break;
}//用来计算这个a[n]是k中的第l个;
for(i=1000;i>=1;i--)
{
if(b[i]==k)
{
l--;
if(l==0)break;
}
}//用来求出这个第l个所对应的原始数据;
cout<<i<<endl;
}
return 0;
}

 

 

最终在楼长的指导下,了解了结构体二级排序,AC了

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;

struct num
{
int x;
int y;
}s[1004];
int cmp(num a,num b)
{

if(a.x==b.x)
return a.y>b.y;
else
return a.x<b.x;
}
int main()
{
int T,t=1;
cin>>T;
while(T--)
{
int n;
cin>>n;
for(int i=1;i<=1000;i++)
{
s[i].x=0;
int m=sqrt(i);
for(int j=1;j<=m;j++)//节省了不少时间;
{
if(i%j==0)
{
s[i].x++;
if(i!=j*j)s[i].x++;
}
}
s[i].y=i;
}
sort(s+1,s+1001,cmp);
cout<<"Case "<<t++<<": "<<s[n].y<<endl;
}
return 0;
}

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值