程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> UVA - 133 The Dole Queue(模擬鏈表)

UVA - 133 The Dole Queue(模擬鏈表)

編輯:C++入門知識

UVA - 133 The Dole Queue(模擬鏈表)


 

n的人圍成一個環,然後按逆時針編號1-n,一個人從1開始逆時針數k個數,另一個人從N開始順時針數m個數,然後 數出來的兩個人出列(兩個人可能一樣)出列,然後繼續此過程,直到全部人都出列為止。

思路是用循環鏈表來模擬,注意 要分情況來討論。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include
#include 

#define CL(arr, val)    memset(arr, val, sizeof(arr))

#define ll long long
#define inf 0x7f7f7f7f
#define lc l,m,rt<<1
#define rc m + 1,r,rt<<1|1
#define pi acos(-1.0)

#define L(x)    (x) << 1
#define R(x)    (x) << 1 | 1
#define MID(l, r)   (l + r) >> 1
#define Min(x, y)   (x) < (y) ? (x) : (y)
#define Max(x, y)   (x) < (y) ? (y) : (x)
#define E(x)        (1 << (x))
#define iabs(x)     (x) < 0 ? -(x) : (x)
#define OUT(x)  printf(%I64d
, x)
#define lowbit(x)   (x)&(-x)
#define Read()  freopen(a.txt, r, stdin)
#define Write() freopen(dout.txt, w, stdout);
#define N 100005
using namespace std;
int n,k,m,l[25],r[25];
void init()
{
    int i;
    for(i=1;i<=n;i++)
    {
        l[i]=i-1;
        r[i]=i+1;
    }
    r[n]=1;l[1]=n;
}
void link(int x,int y)
{
    l[y]=x; r[x]=y;
}

int main()
{
    //Read();
    int i,j,t,x,y,c1,c2;
    while(scanf(%d%d%d,&n,&k,&m)!=EOF&&n+k+m)
    {
        init();
        t=0;
        x=1;y=n;
        c1=c2=1;
        while(t

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved