HDU 1276 (直接链表模拟)
http://acm.hdu.edu.cn/showproblem.php?pid=1276
模拟的蛋疼。。。最蛋疼的是每一次都要报完,不能中途等于三个人就停下来
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<stdio.h> #include<stdlib.h> typedef struct node { int num; struct node *next; }S; S *l; int n; void print() { S *s=l->next,*q; while(s) { if(s->next==NULL) printf("%d\n",s->num); else printf("%d ",s->num); q=s; s=s->next; free(q); } } S *init() { S *L,*q,*s; int i; L=(S*)malloc(sizeof(S)); L->next=NULL; s=L; for(i=1;i<=n;i++) { q=(S *)malloc(sizeof(S)); q->num=i; q->next=NULL; s->next=q; s=s->next; } return L; } void dele(int x) { S *s=l,*q; int i=1; while(s->next) { if(x==i) { i=1; q=s->next; s->next=s->next->next; free(q); n--; } else { i++; s=s->next; } } } int main() { int i,t; scanf("%d",&t); while(t--) { scanf("%d",&n); i=0; l=init(); while(n>3) if(i==0){dele(2);i=1;} else {dele(3);i=0;} print(); } return 0; }