【继续备战coding】 意外 惊喜 更大的挑战
2014-05-04 21:11
183 查看
今天居然意外的发现我进决赛了。嘿嘿,十分激动。
通知是4月14号出的,说是题目设置错误,然后用c语言的同学都0分了那道题,接着就给分了,接着就进决赛了。
真是一个大惊喜。
但是离决赛的日子也不多了,看到相关的评论说是决赛难度会加大4倍,这个系数是怎么评的?
总之,必须抓紧时间练了。而且我觉得,还是趁这个机会好好学学c++,然后把那些经典基础的算法都熟悉一下。
然后就是去感受一下大赛的气氛。
开始刷题。没有发现错误在哪里,找了简单的题目来练。
另外一份C++的代码可以参考了。
通知是4月14号出的,说是题目设置错误,然后用c语言的同学都0分了那道题,接着就给分了,接着就进决赛了。
真是一个大惊喜。
但是离决赛的日子也不多了,看到相关的评论说是决赛难度会加大4倍,这个系数是怎么评的?
总之,必须抓紧时间练了。而且我觉得,还是趁这个机会好好学学c++,然后把那些经典基础的算法都熟悉一下。
然后就是去感受一下大赛的气氛。
开始刷题。没有发现错误在哪里,找了简单的题目来练。
//进行简单的两次排序就可以了 //1、成绩排序 //2、成绩相同则,号码排序 #include <stdio.h> typedef struct _mem { int number; int grade; }mem; void quick(mem *in,int l ,int r) { if( l < r ) { int left = l ,right = r; mem x = in[left]; while(left < right) { while(left < right && in[right].grade <= x.grade) right--; if(left<right) in[left++] = in[right]; while(left <right && in[left].grade > x.grade) left++; if(left<right) in[right--] = in[left]; } in[left] = x; quick(in,l , left-1); quick(in, left+1, r); } } void quick_number(mem *in,int l ,int r) { if( l < r ) { int left = l ,right = r; mem x = in[left]; while(left < right) { while(left < right && in[right].number >= x.number) right--; if(left<right) in[left++] = in[right]; while(left <right && in[left].number < x.number) left++; if(left<right) in[right--] = in[left]; } in[left] = x; quick(in,l , left-1); quick(in, left+1, r); } } int main() { mem input[5002]; int n,m; scanf("%d%d",&n,&m); int i; for(i=0 ;i< n ; i++) { scanf("%d%d",&input[i].number,&input[i].grade); } quick(input,0,n-1); int beg,end; beg = end =0; int temp = input[0].grade; for(i=1 ;i< n; i++) { if(input[i].grade == temp) { end = i; } else { temp = input[i].grade; quick_number(input,beg,end); beg = end = i; } } int get = m*1.5; int line_grade = input[get-1].grade; for(i=get-1 ; i< n ; i++) { if( input[i].grade != line_grade ) { break; } } int act_num = i; printf("%d %d\n",line_grade,act_num); for(i=0 ; i< act_num ; i++) { printf("%d %d\n",input[i].number,input[i].grade); } getchar(); getchar(); return 0; }
另外一份C++的代码可以参考了。
#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <vector> using namespace std; struct People { int id, score; }; People arr[5005]; struct Cmp { bool operator()(const People &m, const People &n)const { if(m.score > n.score) return true; if(m.score == n.score && m.id < n.id) return true; else return false; } }; int main() { int n, m; scanf("%d%d", &n, &m); for(int i = 0; i < n; i++) scanf("%d%d", &arr[i].id, &arr[i].score); sort(arr, arr + n, Cmp()); int endNum = (int)(1.5 * m), addNum = 0; for(int i = endNum; arr[i].score == arr[endNum - 1].score; i++) addNum++; printf("%d %d\n", arr[endNum - 1].score, endNum + addNum); for(int i = 0; i < endNum + addNum; i++) printf("%d %d\n", arr[i].id, arr[i].score); return 0; }
相关文章推荐
- 计算机意外地重新启动或遇到错误。windows安装无法继续。若要安装windows 请单击 确定 重新启动计算机
- 意外的惊喜
- 计算机意外地重新启动或遇到错误。Windows 安装无法继续。若要安装Windows,请单击“确定”重新启动计算机,然后重新启动安装”。
- 2010年初意外的惊喜——通过信息系统项目管理师考试
- 意外的惊喜
- 继续blog,继续coding......
- 意料之外:如何将意外变成惊喜
- 2012-11-19 → 2012-11-25 周总结:挑战还在继续着,仍然要继续努力
- 意外的惊喜!
- 升级10.6.5意外地惊喜, GMA950完美驱动,iworks可用
- 继续挑战iTunes:Amazon推出MP3 web store,绕过苹果三七分成的应用内购规定
- 昨天意外的惊喜。
- 金山:3G时代 上网安全面临更大挑战
- 前沿丨人工智能的框架战争:FB继续挑战Google
- 意外的惊喜 VMRCplus - 强劲的 VSRV2005 工具
- 今天下午继续备战
- 意外的惊喜
- 一次意外的惊喜
- 文档、coding继续
- 计算机意外地重新启动或遇到错误。windows安装无法继续。若要安装windows 请单击 确定 重新启动计算机