poj 3750 小孩报数问题
来源:互联网 发布:nba最牛的体测数据 编辑:程序博客网 时间:2024/04/29 11:20
原题:http://poj.org/problem?id=3750
没啥好说的注意报数间隔为1的情况。
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef char State[16];typedef struct node{ State name; struct node *pNext;}Node,*pNode;pNode AddNewNode(char *name){ pNode NewNode=(pNode)malloc(sizeof(Node)); strcpy(NewNode->name,name); NewNode->pNext=NULL; return NewNode;}void Init(pNode *pHead,char *name){ if(*pHead==NULL) *pHead=AddNewNode(name); else { pNode p=*pHead; while(p->pNext!=NULL) p=p->pNext; p->pNext=AddNewNode(name); }}void solve(pNode pHead,int w,int s){ int i,count=1; pNode p=pHead,start=pHead; while(p->pNext!=NULL) p=p->pNext; p->pNext=pHead; while(count++ < w) start=start->pNext; p=start; if(1 == s) { printf("%s\n",start->name); p=start->pNext; start->pNext=NULL; while(p->pNext!=NULL) { printf("%s\n",p->name); p=p->pNext; } return; } while(p->pNext!=p) { pNode p1=NULL; for(i=1;i < s - 1;i++) p=p->pNext; p1=p->pNext; p->pNext=p1->pNext; p=p1->pNext; printf("%s\n",p1->name); free(p1); } printf("%s\n",p->name);}int main(){ #ifdef LOCAL freopen("input.txt","r",stdin); #endif int t=0,w=0,s=0; State buf; pNode Head=NULL; scanf("%d",&t); while(t--) { scanf("%s",buf); Init(&Head,buf); } scanf("%d,%d",&w,&s); solve(Head,w,s); return 0;}
0 0
- POJ 3750 小孩报数问题
- Poj 3750 小孩报数问题
- poj 3750 小孩报数问题
- 小孩报数问题(poj 3750)
- poj 3750 小孩报数问题
- poj 3750 小孩报数问题
- POJ 3750 小孩报数问题
- POJ 3750 小孩报数问题
- POJ 3750 小孩报数问题
- poj 3750小孩报数问题
- POJ 3750 小孩报数问题
- poj 3750 小孩报数问题
- POJ--3750 小孩报数问题
- poj 3750 小孩报数问题
- poj-3750小孩报数问题
- POJ-3750小孩报数问题
- POJ-3750 小孩报数问题-约瑟夫问题
- poj 3750 小孩报数问题(模拟)
- Android拨打电话和发送短信操作
- F4IF_INT_TABLE_VALUE_REQUEST如何返回多于一个列
- eclipse viplugin命令大全(转载自Lblogs)
- 访问私有变量,私有方法
- Algorithm Gossip: 格雷码(Gray Code)
- poj 3750 小孩报数问题
- 新浪SAE生成缩略图并保存至Storage
- 深入理解HTTP Session
- 第十八篇 设计模式--状态模式
- vimrc
- CCS 3.3中统计程序运行的时间
- Algorithm Gossip: m元素集合的n个元素子集
- highcharts饼状示例
- C#基础学习之【2】数据类型