杭电acm1235,Time Limit Exceeded,过不去,请高手指点

发布网友 发布时间:2024-10-19 19:11

我来回答

4个回答

热心网友 时间:2024-10-24 07:06

下面有提示的,数据量大,scanf printf是必须的,cin cout比较慢,读入大量数据的时候会超时的,你的算法没问题。我只把你的输入输出改了就ac了。
#include <iostream>

using namespace std;

int main()
{
int n, i, a[1000], m, d;
int *p ;
while (scanf("%d",&n)) {

if ( n == 0) {
return 0;
}
for ( i = 0; i < n; i++) {
scanf("%d",&a[i]);
}
//cin >> a;
scanf("%d",&m);
d = 0;
for ( i = 0; i < n; i++) {
if ( a[i] == m) {
d++;
}
}
printf("%d\n",d);
}
}

热心网友 时间:2024-10-24 07:07

#include <iostream>
using namespace std;

int a[101]; //每个分数对应的学生人数

int main()
{
int n, k;

while(scanf("%d",&n) != EOF && n)
{
memset(a, 0, sizeof(a)); //对每个分数初始化为0
while(n--)
{
scanf("%d",&k); //输入分数
a[k]++;
}

scanf("%d",&k); //输入给定分数
printf("%d\n",a[k]); //输出给定分数的人数
}
return 0;
}

热心网友 时间:2024-10-24 07:03

注意这句话"Huge input, scanf is recommended."所以将所有的cin改成scanf就ac了。
#include <iostream>

using namespace std;

int main()
{
int n, i, a[1000], m, d;
int *p ;
while (scanf("%d",&n)) {

if ( n == 0) {
return 0;
}
for ( i = 0; i < n; i++) {
scanf("%d",&a[i]);
}
//cin >> m;
scanf("%d",&m);
d = 0;
for ( i = 0; i < n; i++) {
if ( a[i] == m) {
d++;
}
}
//cout << d << endl;
printf("%d\n",d);
}
}

热心网友 时间:2024-10-24 06:58

HintHint
Huge input, scanf is recommended.
不要用cin,cout,用scanf,printf。标准IO流很慢。
或者不想改的话,加一句ios::sync_with_stdio(false);把同步关了也行。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com