c++-为什么这段代码会超时(自己试了试不会啊)?

问题描述

为什么这段代码会超时(自己试了试不会啊)?

http://noi.openjudge.cn/ch0302/1748/

#include <stdlib.h>
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
void returnint(int,int);
int main() {
    int d1 = 1, d2 = 1, mn = 0,source[2][100],k=0;
    while (1)
    {
        cin >> source[0][k];
        cin >> source[1][k];
        if (source[0][k] == 0 || &source[1][k]==0)break;
        k++;
    }
    for (int t=0;t<k;t++)
    returnint(source[0][t], source[1][t]);
    //system("PAUSE");
        return 0;
}

void returnint(int d1, int d2)
{
    if (d1 == 0 || d2 == 0)
        return;
    int monkey[310] = { 0 },gap=0;
    for (int i = 0; i < d1; i++)
        monkey[i + 1] = 1;
    if (d1 < d2)
        d2 %= d1;
        //确定剩余的猴子→确定退出的猴子

        int i1 = 1, dnum = 0;//dnum:退出个数
        while (1)
        {

            if (monkey[i1] == 1)
            {
                gap++;
                if (gap == d2)
                {
                    monkey[i1] = 0;
                    dnum++;
                    gap = 0;
                }

            }
            if (dnum == (d1))
            {
                cout << i1 << endl;
                break;
            }
            i1++;
            if (i1 > d1)
                i1 %= d1;
        }

}

解决方案

如果在本地可以,而oj这些上runtime error,这个并没有动态,就是访问出界了吧,数组开小了?oj上测试数据多……

时间: 2024-11-10 00:17:42

c++-为什么这段代码会超时(自己试了试不会啊)?的相关文章

android-这两段代码为什么前者可执行,后者不行,若后者不放在run方法里是可执行的

问题描述 这两段代码为什么前者可执行,后者不行,若后者不放在run方法里是可执行的 前者: // 创建子线程 new Thread() { public void run() { try { // 获取源码路径 String path = et_enter.getText().toString().trim(); // 将路径转换为URL URL url = new URL(path); // 利用URL对象得到httpURLconnection对象 用于发送或接收数据 HttpURLConne

关于hrtimer_forward小段代码的分析【转】

转自:http://blog.csdn.net/wowuyinglingluan/article/details/45720151 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 整段代码 关于无效的forward 关于定时精度问题 精确调整和overrun问题 存疑   随着各种嵌入式设备上采用linux,特别是Android系统的广泛应用,linux的hrtimer高精度模式开始被广泛支持.当然,虽说可以支持到ns精度,具体实现依赖于硬件定时器和内核编译条件,不过

c++-这段代码怎么改,才能运行(main的第一行要保留)

问题描述 这段代码怎么改,才能运行(main的第一行要保留) #include using namespace std; class student { public: student(int n,float s):num(n),score(s){} void change(int n,float s){num=n;score=s;} void display(){cout<<num<<" "<<score<<endl;} private

孙鑫-Visual C++的一段代码搞不懂求解释

问题描述 Visual C++的一段代码搞不懂求解释 说一下自己的理解.题目是孙鑫老是的文本输出的例子. 1:GetBkColor得到背景白色,然后SetTextColor(白色)把背景白色设置为文字颜色.跟着clr应该是赋值得到白色了吧,但是F5看的时候是黑色,就要原文字颜色.我这么理解应该错了 1 COLORREF clr=dc.SetTextColor(dc.GetBkColor()); //GetBkColor属于dc对象,改变dc中的背景值(白色).然后SetTextColor用白色值

android-贴一段代码,关于自动接听的,请老司机帮帮忙

问题描述 贴一段代码,关于自动接听的,请老司机帮帮忙 public synchronized void answerRingingCall(Context context) { try { Log.e("try to answer", "below 2.3"); //ITelephony itelephony = getITelephony(mTelephonyManager); Method method = Class.forName("android

编译错误-出现了fatal exception :main 这是其中的一段代码,大家看看有什么问题

问题描述 出现了fatal exception :main 这是其中的一段代码,大家看看有什么问题 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); loginBtn = (Button)findViewById(R.id.login_btn_login); registerBtn = (Butt

求助servlet 这段代码什么意思

问题描述 求助servlet 这段代码什么意思 */ @RequestMapping("/getTile.do") public @ResponseBody String getTile(HttpServletResponse response, @RequestParam(value = "map_id", required = true) String mapId, @RequestParam(required = true) int level, @Reque

ancy orm-用FancyForm添加用户角色,求解释这段代码,

问题描述 用FancyForm添加用户角色,求解释这段代码, var form = $('#form').FancyForm({ title: '添加角色' width: 345 height: 325 inputWidth: 190 labelWidth: 60 url: '<%=path %>/sysRoleController/addRole.do' params: { param1: 1 param2:'string' } defaults: { type: 'string' } it

C++课程设计老师说我没有用到类 求指教这段代码要怎么修改加上类

问题描述 C++课程设计老师说我没有用到类 求指教这段代码要怎么修改加上类 #include #include #include using namespace std; const double pi = 3.14159265; const double e = 2.718281828459; const int SIZE = 1000; typedef struct node//为了处理符号而建立的链表(如: 1+(-2)) { char data; node *next; }node; t