hdu 4350 Card 模拟
来源:互联网 发布:淘宝店铺招牌装修 编辑:程序博客网 时间:2024/05/23 15:38
题目分析:将52张牌,摞在一起,每次操作,将从上到下的第L到R(1<=L<=R<=52)张放到最上面,N次操作后,输出从上个到下牌的顺序,,,
思路:很明显的规律题,找出周期即可,,,用函数fun()来模拟操作过程,用Is_Equal()检查是否和原来的一样,从而周初周期T,之后再调用N%T次fun()就可以了
代码:
#include<iostream>#include<cstdio>using namespace std;int arr[100],arr1[100];int N,L,R,T;void fun(){int a[100];for(int i=1;i<L;i++)a[i]=arr[i];int temp=0;for(int i=1;i<=R-L+1;i++)arr[i]=arr[L+temp++];temp=1;for(int i=1;i<L;i++) arr[R-L+1+temp++]=a[i];}bool Is_Equal(){for(int i=1;i<=R;i++)if(arr[i]!=arr1[i])return false;return true;}int main(){int ca;scanf("%d",&ca);for(int t=1;t<=ca;t++){for(int i=1;i<=52;i++){scanf("%d",&arr[i]);arr1[i]=arr[i];}scanf("%d %d %d",&N,&L,&R);T=0;while(1){ T++; fun(); if(Is_Equal()) { break; }}//printf("T==%d\n\n",T);int temp=N%T;for(int i=1;i<=temp;i++) fun();printf("Case #%d:",t);//是t不是ca WA了一次for(int i=1;i<=52;i++)printf(" %d",arr[i]);printf("\n");}system("pause");return 0;}
- hdu 4350 Card 模拟
- HDU 4350 Card 模拟题
- HDU 4350 Card 模拟题
- hdu 2629 Identity Card (模拟)
- HDU 4350 card
- HDU 4350 - Card
- hdu 4350 Card
- HDU 4350 Card(数学)
- hdu 4350 card
- HDU 4350 Card
- HDU 4350 Card【规律】
- HDU6205 card card card【模拟】
- hdu 6205 card card card
- HDU 6205:card card card
- HDU 6205 card card card
- hdu 6205 card card card
- card card card HDU-6205
- HDU 6205 card card card
- bat文件
- ASP.NET MVC3 COMET SQLDependency 监视数据库表变化
- 监控采集数据,整点定时器原理
- Android Compile
- vs2008的错误:Error: no data exchange control with ID 0x0409
- hdu 4350 Card 模拟
- sqlserver2008 1433端口关闭 Connection refused 解决
- 抓取网页并解析HTML
- VIM配置方法--手把手教你把Vim改装成一个IDE编程环境(图文)
- lucene使用教程1 --简介
- 组件关联关系的映射
- eval解析JSON中的注意点
- 使用easyUI给datagrid添加pagination
- 正在考虑怎么办