L1-088 静静的推荐

一、题目

二、解题思路

  1. 如果有的学生天梯赛成绩虽然与前一个人相同,但其参加过 PAT 考试,且成绩达到了该企业的面试分数线,则也可以接受——同一批次这样的人可以有多个!!!
  2. 如果 pta 分数不低于 175 ,则相同分数的前 k 个人都会被推荐;
  3. 如果  pta 分数不低于 175 ,并且 pat 成绩达到了该企业的面试分数线,也会被推荐。

三、代码

         正确代码:

#include<iostream>
using namespace std;
int main()
{
	int n,k,s,a[300],cot=0;
	cin>>n>>k>>s;
	for(int i=175;i<300;i++)
	{
		a[i]=0;
	}
	while(n--)
	{
		int x,y;
		cin>>x>>y;
		if(x>=175 && a[x]<k)
		{
			a[x]++;
			cot++;
		}
		else if(x>=175 && y>=s)
		{
			cot++;
		}
	}
	cout<<cot;
	return 0;
}

         以下代码可以得到每个批次的人的 pta,pat 分数(虽然在这个题目中没有必要),但解决这个题目最后两个测试点会运行超时

//最后两个测试点超时 
#include<iostream>
using namespace std;
//分数和状态 
struct Student
{
	int pta,pat;
	bool flag=true;
}a[100005];
int main()
{
	int n,k,s,nn=0;
	cin>>n>>k>>s;
//	输入分数并将 pta 分数低于 175 的排除掉 
	for(int i=0;i<n;i++)
	{
		int x,y;
		cin>>x>>y;
		if(x>=175)
		{
			a[nn].pta=x;
			a[nn].pat=y;
			nn++;
		}	
	}
	n=nn;
//	按照 pta 分数从低到高排序,若pta 分数相同,当 pat 分数达到了面试分数线时排在后边 
	for(int i=0;i<n-1;i++)
	{
		for(int j=0;j<n-i-1;j++)
		{
			if(a[j].pta>a[j+1].pta || (a[j].pta>=a[j+1].pta && a[j].pat>=s))
			{
				struct Student t;
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
		}
	}
//	模拟 
	int cot=0;
	while(k--)
	{
		for(int i=0;i<n;i++)
		{
			if(a[i].flag)
			{
				cot++;
				a[i].flag=false;
				for(int j=i+1;j<n;j++)
				{
					if(a[j].pta==a[i].pta && a[j].pat>=s && a[j].flag)
					{
						cot++;
						a[j].flag=false;
					}
					else if(a[j].pta>a[i].pta)
					{
						i=j-1;
						break;
					}
				}
//				for(int j=i+1;j<n;j++)
//				{
//					if(a[j].pta>a[i].pta)
//					{
//						for(int jj=j-1;jj>i;jj--)
//						{
//							if(a[jj].pat>=s && a[jj].flag)
//							{
//								cot++;
//								a[jj].flag=false;
//							}
//						}
//						i=j-1;
//						break;
//					}
//				}				
			}
		}
	}
	cout<<cot;
	return 0;
}

四、总结

  1. 最开始理解错了题意:如果有的学生天梯赛成绩虽然与前一个人相同,但其参加过 PAT 考试,且成绩达到了该企业的面试分数线,则也可以接受——同一批次这样的人可以有多个!!!误以为这样的人只会有一个,导致想复杂了。
  2. 复杂的思路可以得到每个批次的人的 pta,pat 分数(虽然在这个题目中没有必要),但解决这个题目最后两个测试点会运行超时。

相关推荐

  1. L1-080 乘法口诀数列(PTA)

    2024-02-11 19:52:02       20 阅读
  2. L1-083 谁能进图书馆

    2024-02-11 19:52:02       23 阅读
  3. L1-018 大笨钟分数 10

    2024-02-11 19:52:02       34 阅读
  4. 题记(57)--L1-080 乘法口诀数列

    2024-02-11 19:52:02       19 阅读
  5. pta L1-008 求整数段和

    2024-02-11 19:52:02       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-11 19:52:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-11 19:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-11 19:52:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-11 19:52:02       20 阅读

热门阅读

  1. 关于LLaMA Tokenizer的一些坑...

    2024-02-11 19:52:02       31 阅读
  2. 蓝桥杯2023年第十四届省赛真题----棋盘

    2024-02-11 19:52:02       38 阅读
  3. 【Linux】Ubuntu 22.04 升级 nodejs 到 v18

    2024-02-11 19:52:02       29 阅读
  4. fpga 需要掌握哪些基础知识?

    2024-02-11 19:52:02       27 阅读
  5. 修改GI文件的权限

    2024-02-11 19:52:02       32 阅读
  6. python字串节对象Bytes

    2024-02-11 19:52:02       21 阅读
  7. CM3035 Advanced Web Development

    2024-02-11 19:52:02       24 阅读