概述
其实本来不想写博客的,但是我登不进codeforce啊,不知道怎么注册,老是让我进CA什么,,算了,还是选择博客吧
说说codeforce347A, 讲真,英文题伤不起啊,看不看得懂都是问题,看懂了会不会做又是问题......
题目:http://codeforces.com/problemset/problem/347/A
题意就是说输入n个数字,然后输出(x1 - x2) + (x2 - x3) + ... + (xn - 1 - xn).这样最大值的顺序,但是同时要保证字典序最小的排列。。。我认为是这个意思吧
怎么做呢?其实很简单,先排序然后再交换头尾,其实后面note有提示的,只要你能先用sort来排序,规律就能很快看出来了
代码如下:
#include <stdio.h>
#define N 10000
void quick(int * a, int min, int max) {
int i = min;
int j = max;
int temp;
int k = a[min+(max-min)/2];
while (i <= j) {
while(i<max && a[i]<k)
i++;
while(j>min && a[j]>k)
j--;
if(i <= j) {
temp = a[i];
a[i] = a[j] ;
a[j] = temp;
i++;
j--;
}
}
if(i < max) quick(a, i, max);
if(j > min) quick(a, min, j);
}
int main()
{
int i, j, k, n;
int arr[N];
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &arr[i]);
quick(arr, 0, n-1); //这里可以不用自己写快排,还麻烦,可能还出错,直接用sort....
k = arr[0];
arr[0] = arr[n-1];
arr[n-1] = k;
for(i=0; i<n; i++)
printf("%d ", arr[i]);
return 0;
}
然后我现在知道为什么我codeforce登不进去了,要翻墙的.....
有不好的地方请私聊我,第一次写博客有点紧张呢~
最后一句,我在嘉州大学暑假很开心
最后
以上就是简单犀牛为你收集整理的第一次的给codeforce的全部内容,希望文章能够帮你解决第一次的给codeforce所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复