CodeForces.1786A2.发牌.[中等][flg标识][数学规律][双色牌]

这篇具有很好参考价值的文章主要介绍了CodeForces.1786A2.发牌.[中等][flg标识][数学规律][双色牌]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目描述:

CodeForces.1786A2.发牌.[中等][flg标识][数学规律][双色牌]


 题目解读:

发牌问题,给两人发双色牌,同样还是

给a发1张,然后给b发2,3张;

给a发4,5张,给b发6,7张;

给a发8,9张,给b发10,11张;

以此类推,发完为止。

但是牌黑白相间,问最后两个人手里各有多少张白牌、多少张黑牌。


解题思路:

相比简单发牌问题。这个发牌要分别统计白黑牌,首先肯定还是要确定发牌发给谁(flg标记),然后再对获取到的牌分别加到白牌、黑牌变量里。

牌是黑白相间,对牌数使用ceil(i/2)floor(i/2)进行拆分,就能得到具体的牌数。

发给A的牌普遍以白牌开头,对a1使用ceil(i/2),对a2使用floor(i/2)

发给B的牌以黑色开头,黑色比白色多1张,对b1使用floor(i/2),对b2使用ceil(i/2)


代码实现:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>

void Solve() {
	int n;
	int a1 = 0, b1 = 0, a2 = 0, b2 = 0, flg = 1;
	scanf("%d", &n);

	for (int i = 1; i <= n; i += 4) {
		if (n < i) break;
		if (flg % 2 == 1) {
			a1 += ceil(i / 2.0);
			a2 += floor(i / 2.0);
		}
		else {
			b1 += floor(i / 2.0);
			b2 += ceil(i / 2.0);
		}
		n -= i;
		flg++;
	}

	if (n) {
		if (flg % 2 == 1) {
			a1 += ceil(n / 2.0);
			a2 += floor(n / 2.0);
		}
		else {
			b1 += floor(n / 2.0);
			b2 += ceil(n / 2.0);
		}
	}

	printf("%d %d %d %d\n", a1, a2, b1, b2);
	return;
}

int main() {
	int t;
	scanf("%d", &t);
	while (t--) Solve();
	return 0;
}

遇到的错误:文章来源地址https://www.toymoban.com/news/detail-457718.html

到了这里,关于CodeForces.1786A2.发牌.[中等][flg标识][数学规律][双色牌]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Educational Codeforces Round 157 (Rated for Div. 2) F. Fancy Arrays(容斥+组合数学)

    题目 称一个长为n的数列a是fancy的,当且仅当: 1. 数组内至少有一个元素在[x,x+k-1]之间 2. 相邻项的差的绝对值不超过k,即 t(t=50)组样例,每次给定n(1=n=1e9),x(1=x=40), 求fancy的数组的数量,答案对1e9+7取模 思路来源 灵茶山艾府群 官方题解 题解 看到 至少 的字眼,首先想到容斥,

    2024年02月05日
    浏览(40)
  • 用Java实现简易的洗牌和发牌功能

    在日常生活中,想必大家都玩过或者听过斗地主吧,斗地主大致分为三个过程:洗牌,发牌,玩家按照规则将手中的牌给打完,谁最先打完,谁就获胜。这听起来挺简单的,但是影响你胜利的因素有很多:洗牌,玩家的水平。在赌场中很多人就是在洗牌跟发牌的过程中作弊的

    2023年04月09日
    浏览(34)
  • VUE环境下 CSS3+JS 实现发牌 翻牌

    创建牌容器(关键点:overflow:hidden): 创建每一张牌《固定十张牌》: 1.父级(卡牌未放开显示背景) 卡牌子级(显示卡牌内容) 初始化牌位置:  开始发牌: 1.通过变量show来控制 添加 \\\'popup-top-box-card\\\' + index 给牌Class 改变position top left  实现发牌动作  rotateY(180deg) 实现

    2024年02月10日
    浏览(44)
  • js按顺序定义一万个变量 a1 a2 a3 ......, 并赋值, 然后打印a1 a2的值

    在这个示例中,我们使用了一个对象 variables 来存储变量。通过 for 循环,我们定义了一万个变量,并将对应的值赋给了 variables 对象的属性。最后,我们可以通过 variables.a1 和 variables.a2 来访问并打印出这两个变量的值。 使用对象或数组来管理大量连续的变量,可以更加有效

    2024年02月13日
    浏览(58)
  • 【Latex】算法排版规律(中文排版)

    参考资料: 《algorithm, algorithmic算法包到底什么区别?》 《Latex写算法的伪代码排版》 《Latex 编写算法伪代码,基于algorithmicx包的使用说明(人工翻译自CTAN)》 《latex排版原理》 设置字符编码为中文排版 UTF8指的是编码包;ctex是参数命令,表示中文排版 %%cetex中提供了四种中

    2023年04月08日
    浏览(44)
  • 291. 单词规律 II(plus题)

    给你一种规律 pattern 和一个字符串 s ,请你判断 s 是否和 pattern 的规律相匹配。 如果存在单个字符到 非空 字符串的 双射映射 ,那么字符串 s 匹配 pattern ,即:如果 pattern 中的每个字符都被它映射到的字符串替换,那么最终的字符串则为 s 。 双射 意味着映射双方一一对应,

    2024年02月16日
    浏览(33)
  • 1400*C. Element Extermination(贪心&规律)

    Problem - 1375C - Codeforces  解析:         可以发现,最左端的数字,无论删除自己还是下一个,这个位置的值都不会变小。         同理,最右端位置的值都不会变大。         所以当最后剩余两个数字的时候,只有左端小于右端数字,才可以符合题意。

    2024年02月07日
    浏览(64)
  • 队伍发展有一定的规律 队伍不好带

    队伍发展有一定的规律,队伍不好带 塔克曼是研究组织行为学的 1977年提出了团队发展模型 有一定的借鉴意义 趣讲大白话:社会变了,带队伍不好带了 【趣讲信息科技247期】 ****************************   塔克曼团队发展的五个阶段是: 组建期(Forming) 激荡期(Storming) 规范期

    2024年02月14日
    浏览(33)
  • 1200*B. Interesting Subarray(贪心&规律)

    Problem - 1270B - Codeforces   解析:         可以发现,对于某个符合条件的数列,如果两个最值不在两端,那么可以删去两端多余的元素直到两个最值在两端为止。         我们观察某两个相邻元素a、b,可以发现这两个元素组成的序列成立的条件为abs(b-a)=2         再观察三

    2024年02月08日
    浏览(38)
  • 探索规律:Python地图数据可视化艺术

    使用 Pyecharts 构建地图可视化也是很简单的。Pyecharts 支持多种地图类型,包括普通地图、热力图、散点地图等。以下是一个构建简单地图的示例,以中国地图为例: 首先,确保已安装了Pyecharts 库。可以使用以下命令来安装: 然后,创建一个 Python 脚本,例如 map_example.py ,并

    2024年02月13日
    浏览(93)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包