| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3057 人关注过本帖
标题:ACM时间超限
只看楼主 加入收藏
倾听心跳
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:153
注 册:2016-6-22
结帖率:60%
收藏
已结贴  问题点数:10 回复次数:7 
ACM时间超限
#include <stdio.h>  
 int main()  
{  
     int n, m, i, s;   
     while(scanf("%d %d", &n, &m)!=EOF)
     {
     for (i = 2; i <= n; i++)  
     
         s = (s + m) % i;  
     
    printf ("%d\n", s+1);
     }
 }  
搜索更多相关主题的帖子: include 
2016-06-23 10:18
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:2 
s没有初始化。
2016-06-23 10:21
倾听心跳
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:153
注 册:2016-6-22
收藏
得分:0 
[问题:]如果有 n个人围成一圈而坐,每个人的位置都带编号,编号从 1 到 n(没有重复的),从第一个位置开始数数,当数到 m时,那个人退出圈子,再从退出的那个人的下一个位置开始数(假定是顺时针数的),问最后一个退出的人编号是几?
2016-06-23 23:22
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:1 
s初始化了吗

[此贴子已经被作者于2016-6-23 23:54编辑过]

2016-06-23 23:50
time1609
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:59
专家分:118
注 册:2016-5-10
收藏
得分:2 
[问题:]如果有 n个人围成一圈而坐,每个人的位置都带编号,编号从 1 到 n(没有重复的),从第一个位置开始数数,当数到 m时,那个人退出圈子,再从退出的那个人的下一个位置开始数(假定是顺时针数的),问最后一个退出的人编号是几?
struct ren {
    int 编号;
    char *姓名;
    struct ren* next;
};
用环形链表,读取下一级结构体的指针,读取到m次时将当前结构体的指针  放入上一个结构体的next中,这样当前的结构体也就丢弃了(动态分配的话注意释放空间)相当于退出圈子,用循环执行m-1次以后,链表里面就剩下一个结构体了,那个结构体的姓名就是剩下的那个人。
2016-06-24 01:44
倾听心跳
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:153
注 册:2016-6-22
收藏
得分:0 
回复 4楼 rjsp
初始化了
2016-06-24 09:55
倾听心跳
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:153
注 册:2016-6-22
收藏
得分:0 
怎么去优化for循环,让其时间不超限
2016-06-24 10:22
time1609
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:59
专家分:118
注 册:2016-5-10
收藏
得分:5 
[问题:]如果有 n个人围成一圈而坐,每个人的位置都带编号,编号从 1 到 n(没有重复的),从第一个位置开始数数,当数到 m时,那个人退出圈子,再从退出的那个人的下一个位置开始数(假定是顺时针数的),问最后一个退出的人编号是几?
int main(int *argv, char*argc[])
{
    struct 人 {
        int 编号;
        char 姓名[10]; //char *姓名;
        struct 人 *上一个;
        struct 人 *下一个;
    }表头, *浮标,*释放;

    浮标 = &表头;
    int n = 10; //人数   n个人围成一圈
    int m = 12; //数到m  每次数m次
    int 退出 = n - 1;  //

    while (n)  //生成数据实体
    {
        n = n- 1;
        struct 人* 人 = (struct 人*)malloc(sizeof(struct 人));  //分配空间
        浮标->下一个 = 人;
        人->上一个 = 浮标;
        人->下一个 = NULL;
        人->编号 = n;
        浮标 = 人;
    }

    表头.下一个->上一个 = 浮标; //形成环形链表
    浮标->下一个 = 表头.下一个;
    浮标 = 浮标->下一个;  //定位到第一个数据实体。

    int 点名;
    while (退出) //退出一个
    {
        退出 = 退出 - 1;
        点名 = m;
        while (点名)  //点名m次
        {
            点名 = 点名 - 1;
            浮标 = 浮标->下一个;
        }
        浮标->上一个->下一个 = 浮标->下一个;//将当前结构体从链表中剔除。
        浮标->下一个->上一个 = 浮标->上一个;
        释放 = 浮标;
        浮标 = 浮标->下一个;
        free(释放);
    }
    printf("上一个:%d,当前:%d,下一个:%d,编号:%d\n", 浮标->上一个, 浮标, 浮标->下一个, 浮标->编号);  //你要的数据在这里
    free(浮标);
    getchar();
}
收到的鲜花
  • 倾听心跳2016-06-24 22:09 送鲜花  3朵   附言:还是有一个错误,不会改,希望能调试一下
2016-06-24 21:05
快速回复:ACM时间超限
数据加载中...
 
   



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

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