读研上机水题整理——浙大2005

题目1014:排名

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<stdio.h>
 4 #include<string.h>
 5 #include<math.h>
 6 #include<queue>
 7 #include<set>
 8 #include<map>
 9 #define LL long long
10 #define PI acos(-1)
11 #define exp 1e-9
12 #define INF 0x7fffffff
13 using namespace std;
14 priority_queue <int, vector<int>, greater<int> > Q;
15 struct node
16 {
17     char id[25];
18     int score;
19 };
20 bool cmp(node a, node b)
21 {
22     if(a.score!=b.score)
23         return a.score>b.score;
24     else
25     {
26         int tmp=strcmp(a.id,b.id);
27         return tmp<0;
28     }
29 }
30 int main()
31 {
32     int n,M,G,m,num;
33
34     while(~scanf("%d",&n)&&n)
35     {
36         scanf("%d %d",&M,&G);
37         node student[1010];
38         for(int i=0; i<=1010; i++)
39             student[i].score=0;//memset(student[i].id,‘\0‘,sizeof(student[i].id));
40         int list[15];
41         memset(list,0,sizeof(list));
42         for(int i=1; i<=M; i++)
43             scanf("%d",&list[i]);
44         for(int i=0; i<n; i++)
45         {
46             scanf("%s",student[i].id);
47             scanf("%d",&m);
48             for(int j=0; j<m; j++)
49             {
50                 scanf("%d",&num);
51                 //printf("%d\n",list[num]);
52                 student[i].score+=list[num];
53             }
54         }
55         sort(student,student+n,cmp);
56         int ans=0;
57         for(int i=0; i<n; i++)
58         {
59             //printf("%d\n",student[i].score);
60             if(student[i].score>=G)
61                 ans++;
62                 //printf("%s %d\n",student[i].id,student[i].score);
63         }
64         printf("%d\n",ans);
65          for(int i=0; i<n; i++)
66         {
67             if(student[i].score>=G)
68                 //ans++;
69                 printf("%s %d\n",student[i].id,student[i].score);
70         }
71     }
72
73     return 0;
74 }

题目1013:开门人和关门人

不必排序,都转化为秒,记录最大值和最小值的位置,输出即可

题目1012:畅通工程

并查集题目,记得tree数组初始化和判断是否能组成最小生成树的方法,还要记得结点的取值范围是0-n-1,还是1-n

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<stdio.h>
 4 #include<string.h>
 5 #include<math.h>
 6 #include<queue>
 7 #include<set>
 8 #include<map>
 9 #define LL long long
10 #define PI acos(-1)
11 #define exp 1e-9
12 #define INF 0x7fffffff
13 using namespace std;
14 priority_queue <int, vector<int>, greater<int> > Q;
15 int tree[1010];
16 int findRoot(int x)
17 {
18     if(tree[x]==-1)
19         return x;
20     else
21     {
22         int tmp=findRoot(tree[x]);
23         tree[x]=tmp;
24         return tmp;
25     }
26 }
27 int main()
28 {
29     int n,m,a,b;
30     while(~scanf("%d",&n)&&n)
31     {
32         scanf("%d",&m);
33         memset(tree,-1,sizeof(tree));
34         for(int i=0; i<m; i++)
35         {
36             scanf("%d %d",&a,&b);
37             a=findRoot(a);
38             b=findRoot(b);
39             if(a!=b)
40                 tree[a]=b;
41         }
42
43         int ans=0;
44         for(int i=1; i<=n; i++)
45         {
46             if(tree[i]==-1)
47                 ans++;
48         }
49         printf("%d\n",ans-1);
50     }
51     return 0;
52 }
53  

题目1011:最大连续子序列

如果不要求写出最大连续子序列的起始和最终的值,要简答的多,这个就要记录下起始和终止的位置了

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<stdio.h>
 4 #include<string.h>
 5 #include<math.h>
 6 #include<queue>
 7 #include<set>
 8 #include<map>
 9 #define LL long long
10 #define PI acos(-1)
11 #define exp 1e-9
12 #define INF 0x7fffffff
13 using namespace std;
14 priority_queue <int, vector<int>, greater<int> > Q;
15
16 int main()
17 {
18     int k,list[10010];
19     while(~scanf("%d",&k)&&k)
20     {
21         for(int i=1; i<=k; i++)
22         {
23             scanf("%d",&list[i]);
24         }
25         int tmp=0,index=1;
26         int tmax=-10000;
27         int from,to;
28         for(int i=1; i<=k; i++)
29         {
30             tmp+=list[i];
31             if(tmax<tmp)
32             {
33                 tmax=tmp;
34                 from=index;
35                 to=i;
36             }
37             if(tmp<0)
38             {
39                 tmp=0;
40                 index=i+1;
41             }
42         }
43         if(tmax<0)
44             printf("0 %d %d\n",list[1],list[k]);
45         else
46             printf("%d %d %d\n",tmax,list[from],list[to]);
47     }
48     return 0;
49 }
时间: 2024-08-03 23:00:32

读研上机水题整理——浙大2005的相关文章

考研上机水题整理——浙大2006

题目1019:简单计算器 栈的比较经典的运用,记得用栈,队列和容器的时候,要清空,其次就是用栈的基本套路,取值,弹出,推入,输出 1 #include<stdio.h> 2 #include<stack> 3 using namespace std; 4 5 int main() 6 { 7 int a,b; 8 char c,d; 9 stack <double> s; 10 while(~scanf("%d ",&a)&&

oracle 上机操作题整理

每个题目都包含了一些知识点,认真做题慢慢领悟吧! 查找出当前用户模式下,每张表的记录数,以scott用户为例,结果应如下: DEPT...................................4 EMP...................................14 BONUS.................................0 SALGRADE.............................5 declare type tab_name is ta

hdu 4416 水题 浙大计算机研究生复试上机考试-2005年 可是发现自己写代码有问题

Spring3与Hibernate4整合时出现了nested exception is java.lang.NoClassDefFoundError: Lorg/hibernate/cache/CacheProvider. hibernate3的时候,用spring来控制sessionfactory用的可以是org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean,因为用的是hibernate4所以照猫画

2019浙大校赛--J--Extended Twin Composite Number(毒瘤水题)

毒瘤出题人,坑了我们好久,从基本的素数筛选,到埃氏筛法,到随机数快速素数判定,到费马小定理,好好的水题做成了数论题. 结果答案是 2*n=n+3*n,特判1,2. 以下为毒瘤题目: 题目大意: 输入一个数n, 输出两个合数(即非素数)a,b 实现 n+a=b 解题思路 3n=n+2n; 特判1.2 代码: 1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 typedef long long ll; 5

hdu 1846 Brave Game (巴什博弈 最简单的博弈水题)

Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6434    Accepted Submission(s): 4294 Problem Description 十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中的部分

hdu 4802 水题 算GPA 南京现场赛

http://acm.hdu.edu.cn/showproblem.php?pid=4802 今天心情不太好,因为跟一个学姐谈,她似乎保研有点被动,而我的条件其实不如她应该...祝她好运.刷道水题调整下心情 写的有点慢,因为没读题,直接看图,然后N P没考虑以及0/0的情况也没考虑,虽然1A,但是自己代码速度还可以,但是综合起来做题速度还是.... //#pragma comment(linker, "/STACK:102400000,102400000") #include <

由找工作引发的读研感悟

作者:李冰 ·微博:懒人李冰 ·豆瓣:懒人李冰 引子: 9月底找到工作后,就想写一篇文章,总结一下自己的研究生生活和找工作期间的感受,拖到现在,今天补上. 为什么想写这篇文章: 1.读研的过程给了我很多启示,想记录下来. 2.在学习的过程中,没人指导让我感到无比迷茫.恐慌,想把这个记录下,让那些跟我一样的人不在迷茫. 3.网上记录校招文章,大多数都是牛校的牛人进了牛企的经历,对大多数人并不适用. 谁适合看这篇文章: 首先,你所学专业至少与计算机相关,因为后面会出现一些计算机类的专业术语. 其次,

从编程语言、算法、项目等层面深谈读研如何提高技术【转载】

你想进什么公司,和你读什么计算机方向,关系不是很大.只要是理工科的学生,面对技术岗位,其实机会是差不多的. 至于你想什么职位,那显然和你的专业/方向关系较大,比如说很多大数据职位,就明确表示要求你DM/ML/NLP/IR背景,但是这也只是说这些 学生可能更有优势些,事实上,数学和统计学出身的,很多搞这个非常牛逼的. 所以,不要问选什么导师,选什么方向:也不要问我的实验室很水老板很菜我还能找到好工作吗?你要问的是:我想毕业去互联 网公司,我读研的这几年是应该打酱油呢,还是打地沟油? 想找一个好的互

排名(水题)

排名 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 19177    Accepted Submission(s): 7033 Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑  每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通过分数