2017ACM暑期多校联合训练 - Team 8 1008 HDU 6140 Hybrid Crystals (模拟)
Problem Description
Kyber crystals, also called the living crystal or simply the kyber, and known as kaiburr crystals in ancient times, were rare, Force-attuned crystals that grew in nature and were found on scattered planets across the galaxy. They were used by the Jedi and the Sith in the construction of their lightsabers. As part of Jedi training, younglings were sent to the Crystal Caves of the ice planet of Ilum to mine crystals in order to construct their own lightsabers. The crystal's mix of unique lustre was called "the water of the kyber" by the Jedi. There were also larger, rarer crystals of great power and that, according to legends, were used at the heart of ancient superweapons by the Sith.
— Wookieepedia
Powerful, the Kyber crystals are. Even more powerful, the Kyber crystals get combined together. Powered by the Kyber crystals, the main weapon of the Death Star is, having the firepower of thousands of Star Destroyers.
Combining Kyber crystals is not an easy task. The combination should have a specific level of energy to be stablized. Your task is to develop a Droid program to combine Kyber crystals.
Each crystal has its level of energy (i-th crystal has an energy level of ai). Each crystal is attuned to a particular side of the force, either the Light or the Dark. Light crystals emit positive energies, while dark crystals emit negative energies. In particular,
- For a light-side crystal of energy level ai, it emits +ai units of energy.
- For a dark-side crystal of energy level ai, it emits −ai units of energy.
Surprisingly, there are rare neutral crystals that can be tuned to either dark or light side. Once used, it emits either +ai or −ai units of energy, depending on which side it has been tuned to.
Given n crystals' energy levels ai and types bi (1≤i≤n), bi=N means the i-th crystal is a neutral one, bi=L means a Light one, and bi=D means a Dark one. The Jedi Council asked you to choose some crystals to form a larger hybrid crystal. To make sure it is stable, the final energy level (the sum of the energy emission of all chosen crystals) of the hybrid crystal must be exactly k.
Considering the NP-Hardness of this problem, the Jedi Council puts some additional constraints to the array such that the problem is greatly simplified.
First, the Council puts a special crystal of a1=1,b1=N.
Second, the Council has arranged the other n−1 crystals in a way that
[cond] evaluates to 1 if cond holds, otherwise it evaluates to 0.
For those who do not have the patience to read the problem statements, the problem asks you to find whether there exists a set S⊆{1,2,…,n} and values si for all i∈S such that
where si=1 if the i-th crystal is a Light one, si=−1 if the i-th crystal is a Dark one, and si∈{−1,1} if the i-th crystal is a neutral one.
Input
The first line of the input contains an integer T, denoting the number of test cases.
For each test case, the first line contains two integers n (1≤n≤103) and k (|k|≤106).
The next line contains n integer a1,a2,...,an (0≤ai≤103).
The next line contains n character b1,b2,...,bn (bi∈{L,D,N}).
Output
If there exists such a subset, output "yes", otherwise output "no".
Sample Input
2
5 9
1 1 2 3 4
N N N N N
6 -10
1 0 1 2 3 1
N L L L L D
Sample Output
yes
no
题意:
有n个宝石,每个宝石有自身的能量值,但是能量值可能为正也可能为负,有一个代表能量值正负的标记:
N:该宝石上的能量可以为正也可以为负
L:该宝石上的能量为正
D:该宝石上的能量为负
问这所有的宝石能不能构成能量为k的一个值。
分析:
这题目真的是又臭又长,说一堆没用的废话,瞬间感觉自己又经历了一场六级的阅读理解。。。心累啊
只怪自己比赛的时候脑子不够用,竟然用深搜在写,不超才怪呢。
这道题中的数组所组成的数构成了一个连续的区间。
如果之前的一堆数能够构成 [−a,b]中所有的整数的话,这时候来了一个数x,如果x只能取正值的话,并且有x<=b,那么就能构成[−a,b+x]内的所有的整数。
如果x只能取负值的话,并且有x<=a,那么就能构成[−a-x,b]内的所有的整数。
如果x可正可负的话,并且有x<=min(a,b),那么就能构成[−a-x,b+x]内的所有的整数。
有疑问的一点就是不是需要构成一个连续的区间吗?
这一点题目上的那个臭长的式子保证了这一点。
代码:
#include<iostream>
#include<stdio.h>
using namespace std;
int a[1009];
int main()
{
int T,n,k,sum1,sum2;///sum1表示正数的和,sum2表示负数的和
char ch;
scanf("%d",&T);
while(T--)
{
sum1=sum2=0;
scanf("%d%d",&n,&k);
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
for(int i=1; i<=n; i++)
{
scanf(" %c",&ch);
if(ch=='N')
{
sum1+=a[i];
sum2-=a[i];
}
else if(ch=='L')
sum1+=a[i];
else
sum2-=a[i];
}
if(k>=sum2&&k<=sum1)
printf("yes\n");
else
printf("no\n");
}
return 0;
}
2017ACM暑期多校联合训练 - Team 8 1008 HDU 6140 Hybrid Crystals (模拟)的更多相关文章
- 2017ACM暑期多校联合训练 - Team 6 1008 HDU 6103 Kirinriki (模拟 尺取法)
题目链接 Problem Description We define the distance of two strings A and B with same length n is disA,B= ...
- 2017ACM暑期多校联合训练 - Team 7 1008 HDU 6127 Hard challenge (极角排序)
题目链接 Problem Description There are n points on the plane, and the ith points has a value vali, and i ...
- 2017ACM暑期多校联合训练 - Team 6 1003 HDU 6098 Inversion (模拟)
题目链接 Problem Description Give an array A, the index starts from 1. Now we want to know Bi=maxi∤jAj , ...
- 2017ACM暑期多校联合训练 - Team 2 1008 HDU 6052 To my boyfriend (数学 模拟)
题目链接 Problem Description Dear Liao I never forget the moment I met with you. You carefully asked me: ...
- 2017 ACM暑期多校联合训练 - Team 9 1008 HDU 6168 Numbers (模拟)
题目链接 Problem Description zk has n numbers a1,a2,...,an. For each (i,j) satisfying 1≤i<j≤n, zk gen ...
- 2017ACM暑期多校联合训练 - Team 4 1004 HDU 6070 Dirt Ratio (线段树)
题目链接 Problem Description In ACM/ICPC contest, the ''Dirt Ratio'' of a team is calculated in the foll ...
- 2017ACM暑期多校联合训练 - Team 9 1005 HDU 6165 FFF at Valentine (dfs)
题目链接 Problem Description At Valentine's eve, Shylock and Lucar were enjoying their time as any other ...
- 2017ACM暑期多校联合训练 - Team 9 1010 HDU 6170 Two strings (dp)
题目链接 Problem Description Giving two strings and you should judge if they are matched. The first stri ...
- 2017ACM暑期多校联合训练 - Team 8 1006 HDU 6138 Fleet of the Eternal Throne (字符串处理 AC自动机)
题目链接 Problem Description The Eternal Fleet was built many centuries ago before the time of Valkorion ...
随机推荐
- 【第八周】【新蜂】新NABCD
由小组成员宫成荣撰写 一.小组项目申请时提交的NABCD: 痛点:普通的俄罗斯方块是不现实距离下一级有多远的,我们的游戏能显示距离下一等级游戏有多远.方便玩家体验. nabc: n:能满足大多数玩家的 ...
- 使用selenium遍历frame中的表单信息 ;
遍历frame中的表单 : package webDriverPro; import java.util.List; import java.util.regex.Matcher; import ja ...
- XHTML5 与 HTML 4.01的差异
在 HTML 4.01 中,td 元素的 "bgcolor"."height"."width" 以及 "nowrap" ...
- python3判断字典、列表、元组为空以及字典是否存在某个key的方法
#!/usr/bin/python3 #False,0,'',[],{},()都可以视为假 m1=[] m2={} m3=() m4={"name":1,"age&quo ...
- Spring Cloud Zuul(服务网关)
新建应用:api-gateway pom.xml <?xml version="1.0" encoding="UTF-8"?> <projec ...
- 【开发工具IDE】Eclipse 安装 Maven 的 m2eclipse 插件
本段节选自http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html Eclipse是一款非常优秀的IDE.除了基本的语法标亮.代码 ...
- Ubuntu18.04 创建与编辑热点的方法
在终端输入 nm-connection-editor 修改Hotspot,里边有热点名称及密码 当修改完了这些,要关闭热点,重新打开,这样才会生效!
- OSPF协议介绍及配置 (下)
4.特殊区域详解 为了让我们的讲解更加的通俗易懂,我们看上面这个拓扑,这是一个根据客户业务逻辑结构所涉及的OSPF网络,共有三个区域(实际上远远不止),骨干区域area0为一级行及二级行所部署,*** ...
- 什么是P问题,NP问题和NPC问题
转载自:Matrix67的博客 什么是P问题.NP问题和NPC问题 这或许是众多OIer最大的误区之一. 你会经常看到网上出现“这怎么做,这不是NP问题吗”.“这个只有搜了,这已经被证明是NP问 ...
- 在 QML 中创建 C++ 导入类型的实例
在 QML 中创建 C++ 导入类型的实例 文件列表: Project1.pro QT += quick CONFIG += c++ CONFIG += declarative_debug CONFI ...