链接:hdu6140[思维]
题解
- ZZ的我一开始没看数据范围,直接上dp,结果显然T了
- 根据题上的这个公式,就可以发现这就是个巨水的题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using namespace std;
const int N=1e6+7;
int ans1,ans2,n,m,T,nm[N];
char c;
template <typename T>inline void read(T &x){
x=0;char c;int sign=1;
do{c=getchar(); if(c=='-')sign=-1;}while(c<'0'||c>'9');
do{x=x*10+c-'0';c=getchar();}while(c>='0'&&c<='9');
x*=sign;
}
inline void init(){
ans1=ans2=0;
read(n);read(m);
rep(i,1,n)read(nm[i]);
rep(i,1,n){
while(isspace(c=getchar()));
if(c=='L')ans1+=nm[i];
else if(c=='D')ans2-=nm[i];
else ans1+=nm[i],ans2-=nm[i];
}
}
inline int solve(){return m>=ans2&&m<=ans1;}
int main(){
read(T);
while(T--){
init();
puts(solve()?"yes":"no");
}
return 0;
}