hdoj-2523-SORT AGAIN
2016-03-24 08:51
513 查看
感觉这题用set能过 ,但是只是后来想的,一拿到题发现能水过去就选择了水过去。我大概就是拿dp数组记录差值有没有被算过(但只记录一次),数组num判断这个差值是否被记录,因为看样例可以看出来,这个题不能重复(所以后来想到可以用set),数组cnt来记录差值。后来看到别人好多都是几十ms过的,我是686ms过的,有点虚啊
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> using namespace std; int a[1015]; int cnt[2030]; int dp[2030][2030]; int num[2030]; int main() { int t; scanf("%d",&t); while(t--) { int n,k; for(int i=0;i<=2000;i++) for(int j=0;j<=2000;j++) dp[i][j]=-1; memset(cnt,0,sizeof(cnt)); memset(num,0,sizeof(num)); scanf("%d%d",&n,&k); for(int i=1;i<=n;i++) scanf("%d",&a[i]); int t=0; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) { if(dp[i][j]==-1) { int w=abs(a[i]-a[j]); if(num[w]==0) { cnt[t++]=w; num[w]=1; } // printf(" cnt=%d\n",cnt); dp[i][j]=dp[j][i]=1; } } sort(cnt,cnt+t); //printf("%d %d %d\n",cnt[k],cnt[k-1],cnt[k+1]); printf("%d\n",cnt[k-1]); //for(int i=0;i<t;i++) printf("cnt=%d %d\n",cnt[i],t); } return 0; }
相关文章推荐
- Aidl 实现进程之间的通讯
- 我与小娜(41):人工智能辅助写作
- rman报错问题 RMAN-03002: failure of recover command
- keychain
- Gradle sync failed: Plugin is too old,
- 处理file_put_contents failed to open stream
- Rails 多态
- Cannot proxy target class because CGLIB2 is not available
- CC2541 AirSync(5)——登录包
- SharePoint2010 Content Deployment Job Failed解决方案
- available()方法的使用总结
- light oj 1138 - Trailing Zeroes (III)《《二分》》
- 杭电 Problem1787 GCD Again
- hdoj 1867 A + B for you again【kmp,前缀与后缀的匹配】
- 感动 Mr.Snail 作品集
- LeetCode OJ 217. Contains Duplicate
- 在rails中使用bcrypt进行密码的加密
- UVALive 7483 Air Conditioned Minions
- vector中插入pair
- INSTALL_PARSE_FAIL_NO_CERTIFICATE 打jar包的时候遇到的问题。