兵临城下&&魔幻交易

原创 2016年08月28日 20:05:43

卢卡斯的驱逐者大军已经来到了赫柏的卡诺萨城,赫柏终于下定决心,集结了大军,与驱逐者全面开战。
卢卡斯的手下有6名天之驱逐者,这6名天之驱逐者各赋异能,是卢卡斯的主力。
为了击败卢卡斯,赫柏必须好好考虑如何安排自己的狂战士前去迎战。
狂战士的魔法与一些天之驱逐者的魔法属性是相克的,第i名狂战士的魔法可以克制的天之驱逐者的集合为Si(Si中的每个元素属于[0,5])。
为了公平,两名狂战士不能攻击同一个天之驱逐者。
现在赫柏需要知道共有多少种分派方案。
例:
S1={01},S2={23},代表编号为0的狂战士的魔法可以克制编号为0和编号为1的天之驱逐者,编号为1的狂战士的魔法可以克制编号为2和编号为3的天之驱逐者,共有四种方案:02,03,12,13。
02---代表第一个狂战士负责编号为0的驱逐者,第二个狂战士负责编号为2的驱逐者;
03---代表第一个狂战士负责编号为0的驱逐者,第二个狂战士负责编号为3的驱逐者;
12---代表第一个狂战士负责编号为1的驱逐者,第二个狂战士负责编号为2的驱逐者;
13---代表第一个狂战士负责编号为1的驱逐者,第二个狂战士负责编号为3的驱逐者;
S1={01},S2={01},代表编号为0的狂战士的魔法可以克制编号为0和编号为1的天之驱逐者,编号为1的狂战士的魔法可以克制编号为0和编号为1的天之驱逐者,共有两种方案:01,10。


输入描述:
多组测试数据,请处理到文件结束。

对于每组测试数据:

第一行为一个整数N,代表狂战士的数量。

第二行为N个字符串,第i个字符串表示第i个狂战士能够克制的天之驱逐者的集合。

保证:

1<=N<=6,1<=每个字符串的长度<=6,且每个字符都是0~5中的一个数字。



输出描述:
输出一个整数,代表分配方案数

输入例子:
2
01 23
2
01 01
3
3 015 5

输出例子:
4
2
2

#include<iostream>
#include<string>
using namespace std;
string s[6];
int n;
int vis[6];
int ans;
void dfs(int p)
{
	if (p == n)
	{
		ans++;
		return;
	}
	for (int i = 0; i < s[p].length(); i++)
	{
		if (vis[s[p][i] - '0'] == 0)
		{
			vis[s[p][i] - '0'] = 1;
			dfs(p + 1);
			vis[s[p][i] - '0'] = 0;
		}
	}
}
int main()
{
	while (cin >> n)
	{
		ans = 0;
		for (int i = 0; i < 6; i++)
			vis[i] = 0;
		for (int i = 0; i < n; i++)
			cin >> s[i];
		dfs(0);
		cout << ans << endl;
	}
}

魔幻交易

在最近几场魔兽争霸赛中,赫柏对自己的表现都不满意。
为了尽快提升战力,赫柏来到了雷鸣交易行并找到了幻兽师格丽,打算让格丽为自己的七阶幻兽升星。
经过漫长的等待以后,幻兽顺利升到了满星,赫柏很满意,打算给格丽一些小费。
赫柏给小费是有原则的:
1.最终给格丽的钱必须是5的倍数;
2.小费必须占最终支付费用的5%~10%之间(包含边界)。
升星总共耗费A魔卡,赫柏身上带了B魔卡,赫柏想知道他有多少种支付方案可供选择。
注:魔卡是一种货币单位,最终支付费用=本该支付的+小费

输入描述:
多组测试数据,请处理到文件结束。

对于每组测试数据:

包含两个整数A和B。

保证:

1<=A,B<=2,000,000,000,A<=B。


输出描述:
输出一个整数,代表方案数。

输入例子:
4 100
23 100

输出例子:
0
1
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int a, b;
	while (cin >> a >> b)
	{
		if (a>b)cout << '0' << endl;
		else
		{
			int count = 0;
			int start = ceil(a / 0.95);//下限
			int end = floor(a / 0.90);//上限
			while ((start % 5 != 0) && (start <= end))//找到可以被5整除的起始点
				++start;
			for (int i = start; i <= end&&i <= b; i += 5)
				++count;
			cout << count << endl;
		}
	}
	return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

魔幻冒险类VR游戏《无界术士》即将登陆Steam平台

波兰VR游戏《无界术士》在Hypereal商店首发,其创始人表示看好中国的VR市场。...

魔幻般冒泡背景的CSS3按钮动画

这是一款非常有特点的CSS3按钮,按钮的背景不是北京图片,也不是单纯的颜色,而是一组魔幻般的冒泡背景动画。当我们将鼠标滑过按钮时,按钮的冒泡背景动画就可以展示出来。可以说这款CSS3按钮的设计风格相当...

魔幻矩阵全解(有全部代码说明)

无意间看到了关于魔幻矩阵的一篇博客,感觉挺有意思的,于是便编程分别实现了三种魔幻矩阵的c程序。 下面是关于魔幻矩阵的一篇很详细的解释说明,看代码之前,务必先去了解了解。 http://blog.c...

opencv实现魔幻笔效果

简介   在使用美图秀秀之类工具的时候,发现了一个魔幻笔效果,然后这里用opencv实现了类似效果。 实现原理 具体实现   表现效果是,当鼠标左键在图片窗口上按下时候,会从鼠标当前坐标位置,不...

最新版魔幻手势,免ROOT 重磅推出

魔幻手势锁屏桌面 一直受到大家的喜爱,也是大家最喜欢的一款产品。这次魔幻手势锁屏桌面 彻底升级,所有界面全部重写。华丽大转身!! 而且是免Root的。各位机油 的大福利啊。 可通过滑屏手势操作模拟实...
  • GYBIN02
  • GYBIN02
  • 2012年06月21日 20:28
  • 438

【二维线段树(二维区间GCD)】[NOI2012]魔幻棋盘

题目描述 分析这是经典的区间gcdgcd(最大公约数)问题。差分GCDgcd(a,b)gcd(a,b,c)=gcd(a,b−ka)=gcd(gcd(a,b),c)=gcd(gcd(a,b−a),c)...

魔幻数字

根据百度百科介绍,magic number(“魔幻数字”)在计算机和程序开发中分别有不同的含义。 1、计算机中的魔数是指,用来标记文件或者协议的格式的固定数字。 例如,win32可执行程序的开头标...

Groovy Tip 21 魔幻数组 一

  • 2013年07月16日 11:55
  • 4KB
  • 下载

魔幻闹钟-电脑闹钟

  • 2011年10月29日 00:17
  • 332KB
  • 下载

CSUOJ1238--兵临城下

这个题目的难点在于p操作时快速确定没预热炮中的最小编号.我是用线段树为每门炮维护了一个最后可开炮时间,然后每次需要预热一门炮时就用二分加线段树查询满足要求的最小编号.要注意如果一门炮可以开炮时间的结尾...
  • acm_lkl
  • acm_lkl
  • 2015年05月16日 17:09
  • 460
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:兵临城下&&魔幻交易
举报原因:
原因补充:

(最多只允许输入30个字)