1 条题解
-
0
使用双端队列,记录每个牌堆的状态,按照题意模拟即可,有一些细节需要去注意但不是很多。
#include<bits/stdc++.h> using namespace std; deque<int> save[14]; int vis[14]; int main() { for(int i=1;i<=13;i++) for(int j=1;j<=4;j++){ char c;cin>>c;int x; if(isdigit(c))x=c-'0'; else if(c=='J')x=11; else if(c=='Q')x=12; else if(c=='K')x=13; else if(c=='A')x=1; if(x==0)x=10; save[i].push_back(x); } for(int i=1;i<=4;i++){ int cur=save[13].front();save[13].pop_front(); if(cur==13)continue; while(1){ vis[cur]++; save[cur].push_front(cur); int nxt=save[cur].back(); save[cur].pop_back(); if(nxt==13)break; cur=nxt; } } int tot=0; for(int i=1;i<=13;i++)if(vis[i]==4)tot++; cout<<tot; return 0; }
- 1
信息
- ID
- 9893
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 10
- 已通过
- 8
- 上传者
京公网安备 11011102002149号