标题:写的代码超时了,不知道哪儿能改...
只看楼主
hanserisgood
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2022-8-16
结帖率:77.78%
已结贴  问题点数:20 回复次数:4 
写的代码超时了,不知道哪儿能改...
题目在这儿:https://www.

#include<stdio.h>
int main(void)
{
    int n;
    scanf("%d",&n);
    int light[20000]={0};//所有的灯刚开始都是关着的。
    int i;
    int j;
    double a;
    int t;
    int change;//标记
    for(i=0;i<n;i++)
    {
        scanf("%lf%d",&a,&t);
        for(j=1;j<=t;j++)
        {
            change=(int)(a*j);
            if(light[change]==0)
            {
                light[change]=1;
            }
            else
            {
                light[change]=0;
            }
        }
    }
    for(i=0;1;i++)
    {
        if(light[i]==1)
        {
            printf("%d",i);
            break;
        }
    }
    return 0;
}
搜索更多相关主题的帖子: change int 代码 超时 for 
2022-11-19 17:16
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:10 
题目里说需要算2000000盏灯,而楼主你处理了20000盏。
你说有没有一种可能,因为等着另外1980000盏总也等不到所以就超时了呢?

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2022-11-19 19:51
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
程序代码:
#include <stdio.h>

int main( void )
{
    unsigned n;
    scanf( "%u", &n );

    unsigned result = 0;
    while( n-- )
    {
        double a;
        unsigned t;
        scanf( "%lf%u", &a, &t );

        for( unsigned i=0; i!=t; ++i )
            result ^= (unsigned)( a*(i+1) );
    }

    printf( "%u\n", result );
}
收到的鲜花
  • forever742022-11-20 10:42 送鲜花  1朵   附言:为R版精炼赞!
2022-11-19 20:35
hanserisgood
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2022-8-16
得分:0 
回复 2楼 forever74
确实是这样,改了之后就好了...感谢
2022-11-20 10:14
hanserisgood
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2022-8-16
得分:0 
回复 2楼 forever74
感谢感谢
2022-11-20 10:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510703-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056087 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved