首页 > 其他分享 >D. Card Game

D. Card Game

时间:2024-04-17 16:36:44浏览次数:26  
标签:second int cin sk Game mp include Card

链接:https://www.luogu.com.cn/problem/CF1932D
https://codeforces.com/problemset/problem/1932/D
总的来说,就是把每副牌分开存储,然后如果长度是奇数,那么就从万能牌中拿过来一张;如果是偶数就不需要
判断是否是impossible?
每组对2求余之后加起来,如果比万能牌长度长就impossible
题面:

代码:

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
#include<map>
#include<queue>
#include<limits.h>
#include<climits>
#include<fstream>
#include<stack>
#include<set>
typedef long long ll;
using namespace std;

const int N = 2e5 + 10;


int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	string menu = "CDHS";
	int t;
	cin >> t;
	while (t--)
	{
		map<char, vector<int>>mp;
		queue<string>qq;
		int n; cin >> n;
		char swin; cin >> swin;
		string sk;
		for (int i = 0; i < 2 * n; i++)
		{
			cin >> sk;
			mp[sk[1]].push_back(sk[0] - '0');
		}
		int ptr = 0;
		int twinow = 0;
		for (map<char, vector<int>>::iterator it = mp.begin(); it != mp.end(); ++it)
		{
			sort(it->second.begin(), it->second.end());
		}
		for (map<char, vector<int>>::iterator it = mp.begin(); it != mp.end(); ++it)
		{
			if (it->first == swin)twinow = it->second.size();
			else
			{
				if (it->second.size() % 2 == 1)ptr += 1;
			}
		}
		if (twinow < ptr)cout << "IMPOSSIBLE" << endl;
		else
		{
			for (int i = 0; i < 4; i++)
			{
				if (menu[i] != swin)
				{
					for (int j = 0; j < mp[menu[i]].size(); j++)
						qq.push(string(to_string(mp[menu[i]][j]) + menu[i]));
					if (mp[menu[i]].size() % 2)
					{
						qq.push(string(to_string(mp[swin][mp[swin].size() - 1]) + swin));
						mp[swin].pop_back();
					}
				}
			}
			for (int i = 0; i < mp[swin].size(); ++i)
			{
				qq.push(string(to_string(mp[swin][i]) + swin));
			}
			while (!qq.empty())
			{
				cout << qq.front() << ' ';
				qq.pop();
				cout << qq.front() << endl;
				qq.pop();
			}
		}


	}
	return 0;
}

标签:second,int,cin,sk,Game,mp,include,Card
From: https://www.cnblogs.com/zzzsacmblog/p/18141067

相关文章

  • gamebar开启fps报错-解决方法
    是“PerformanceLogUsers”权限没加的原因。 1、WIN10家庭版:WIN10家庭版默认是没有用户和组的,所以需要手动添加:管理员模式打开CMD;先输入:netuser在列表中找到你的用户名,比如“andy”,每个人电脑的用户名都不一样,找到自己电脑的用户名后记下来,在CMD中再次输入(其中“an......
  • YetAnotherBoardGame
    Topcoder#搜索经典套路,我们发现枚举第一行后剩余的其实是确定的那么枚举并爆搜即可时间复杂度是\(3^k\)因为列的限制//Author:xiaruizeconstintN=13+10;intn,m;bools[N][N],bck[N][N];intop[N];voidupd(intx,inty,intty){if(ty==1)......
  • games101_Homework7
    实现完整的PathTracing算法需要修改这一个函数:•castRay(constRayray,intdepth)inScene.cpp:在其中实现PathTracing算法//ImplementationofPathTracingVector3fScene::castRay(constRay&ray,intdepth)const{//TODOImplementPathTracing......
  • games101_Homework6
    实现Ray-BoundingVolume求交与BVH查找在本次编程练习中,你需要实现以下函数:•IntersectP(constRay&ray,constVector3f&invDir,conststd::array<int,3="">&dirIsNeg)intheBounds3.hpp:这个函数的作用是判断包围盒BoundingBox与光线是否相交,你需要按照课程介......
  • 52 Things: Number 31: Game Hopping Proof
    52Things:Number31:GameHoppingProof52件事:数字31:游戏跳跃证明 Thisisthelatestinaseriesofblogpoststoaddressthelistof'52ThingsEveryPhDStudentShouldKnowToDoCryptography':asetofquestionscompiledtogivePhDcandidatesase......
  • 52 Things: Number 32: difference between game-based and simulation-based securit
    52Things:Number32:differencebetweengame-basedandsimulation-basedsecuritydefinitions52件事:数字32:基于游戏和基于模拟的安全定义之间的区别 Thisisthelatestinaseriesofblogpoststoaddressthelistof'52ThingsEveryPhDStudentShouldKnowt......
  • Intel MacBook Pro+macOS 14配置Games101实验环境
    参考:求一个games101图形学课程的环境配置教程,最好能够简单易懂,CSDN教程根本看不懂什么意思?-不泊的回答-知乎https://www.zhihu.com/question/459126051/answer/3420947842macos现在怎么装homebrew?-MyloZ的回答-知乎https://www.zhihu.com/question/340411846/answe......
  • [题解][2022江西省程序设计竞赛] Graphic Game
    题目描述Cirno被推荐了一个游戏,她决定今天和大妖精一起玩。最初,有一个包含2×n个顶点和m条边的图。在每一轮中,Cirno和大妖精都必须选择一个不同的顶点。所选顶点的度数必须相同。然后,Cirno和大妖精将从图中移除它们。现在Cirno想知道是否有办法从给定的图中移除所有顶点。如果......
  • C. Array Game
    原题链接题解1.突然遇到新颖的题,我们可以采用逐步变难法、最简策略法、观察数据法逐步变难法:当\(k=0\)时,\(ans_0=min(a[i])\)\(k=1\)时\(ans_1=min(ans_0,a[i]-a[i+1](sort))\)观察数据法:\(k=2\)时观察数据可知\(n^2\)左右的算法是可行的,所以我们可以先两端循环遍......
  • [题解][2022江西省程序设计大赛] A Game of Taking Numbers
    题目描述rqdmap和他的小女友正在玩一个游戏。有n个正整数。这两个人轮流取数字。为了显示他的绅士风度,rqdmap要求他的小女友先取数字。每当rqdmap的小女友可以选择剩下的数字中的任意一个来拿走(记为x),rqdmap需要从剩下的数字中选择一个数字(记为y),并且满足以下两个条件中的至少一个......