【剑指offer+扑克牌顺子+数学建模+模拟】
来源:互联网 发布:淘宝图片的尺寸是多少 编辑:程序博客网 时间:2024/05/22 00:24
【题目链接】:http://ac.jobdu.com/problem.php?pid=1355
【题目描述】:
【思路】:
把扑克牌的背景抽象成计算机语言,即把五张牌看成由5个数字组成的数组。大小王看做事特殊的数字,不妨把它们定义为0,这样就能和其他牌区分开来。
【代码】:
/***********************剑指offer 扑克牌顺序【模拟】Author:herongweiTime:2017/5/12 19:00language:C++http://blog.csdn.net/u013050857***********************/#include <bits/stdc++.h>#include <iostream>#include <algorithm>#define rep(i,k,n) for(int i=k;i<=n;++i)#define rep2(i,k,n) for(int i=k;i>=n;--i)using namespace std;const int maxn= 1e2+233;const int N= 1e6;const int MOD = 1e9+7;typedef long long LL;int t,n,m,k,ret,ans,tot=0;int arr[15];inline int read(){ int c=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){c=c*10+ch-'0';ch=getchar();} return c*f;}void quick_sort(int* arr, int l, int r){ if(l<r){ ///Swap(s[l], s[(l + r) / 2]); 将中间的这个数和第一个数交换 参见注1 int i=l, j=r, tp=arr[l]; while(i<j) { while(i<j&&arr[j]>=tp)j--; /// 从右向左找第一个小于tp的数 j--; if(i<j)arr[i++]=arr[j]; while(i<j&&arr[i]<=tp)i++; /// 从左向右找第一个大于等于tp的数 i++; if(i<j)arr[j--]=arr[i]; } arr[i] = tp; quick_sort(arr,l,i-1); /// 递归调用 quick_sort(arr,i+1,r); }}/// 0 1 3 4 5bool is_continuous(int* arr,int n){ if(arr==NULL || n<1) return false; quick_sort(arr,1,n);///先排序使得序列有序 /// rep(i,1,n) cout<<arr[i]<<" ";; int num_zero = 0; ///统计0的个数 int num_gap = 0; ///统计缺位的个数 for(int i=1; i<=n && arr[i]==0;++i) ++num_zero; int small=num_zero+1; int big = small+1; while(big<n){ /// 循环o(n)查找缺位个数 if(arr[big]==arr[small]) return false; num_gap += arr[big]-arr[small]-1; small=big; ++big; } // cout<<num_gap<<" "<<num_zero<<endl; return num_gap<=num_zero?true:false;}int main(){ // freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); while(~scanf("%d",&n)&&n){ memset(arr,0,sizeof(arr)); rep(i,1,n) arr[i]=read(); if(is_continuous(arr,n))puts("So Lucky!"); else puts("Oh My God!"); } return 0;}
0 0
- 【剑指offer+扑克牌顺子+数学建模+模拟】
- 剑指offer--扑克牌顺子
- 《剑指offer》扑克牌顺子
- 剑指offer:扑克牌顺子
- 剑指offer:扑克牌顺子
- 剑指offer:扑克牌顺子
- [剑指offer]扑克牌顺子
- 剑指offer|扑克牌顺子
- 剑指offer|扑克牌顺子
- 《剑指offer》-扑克牌顺子
- 剑指Offer: 扑克牌顺子
- 剑指offer-扑克牌顺子
- 剑指offer--扑克牌顺子
- 剑指offer 扑克牌顺子
- 剑指offer-扑克牌顺子
- 剑指offer 扑克牌顺子
- 剑指offer:扑克牌顺子
- 【剑指offer】扑克牌的顺子
- easyui-(二)
- java 去除空格、标点符号
- POJ 1797 Heavy Transportation(Dijkstra算法)
- 移动端问题
- 学习opencv第二章课后题4,5
- 【剑指offer+扑克牌顺子+数学建模+模拟】
- [Algorithm]九章必背程序--stack:Non Recursion
- 什么是servlet
- 逻辑回归处理离散变量
- 利用ORACLE对数据权限进行控制
- 每日一题 No.46 输出素数的个数
- 护花天使项目,51单片机代码分析第一次
- UVA
- Android Zxing 的简单对接