hdu6140-多校8&思维&坑- Hybrid Crystals
2017-08-17 20:35
387 查看
acm.hdu.edu.cn/showproblem.php?pid=6140
纪念暴零0的一天。
这道题很坑,因为题意中间说了,”For those who do not have the patience to read the problem statements”。
然而上面的是有用的。
给定一些数,有的增加能量,有的减少能量,有的可以增加或者减少能量。问你某些个能量能否组成。
开始的想法是 分别统计 正数 和负数 背包 计数所有的情况(最大1e9),然后判断是否存在差值等于k的情况。但是这样要保存的状态有点大。。
后来队友发现上面一个式子,保证了他的数组能量的出入是有规律限制的,限制的条件就是他的 能量得到的值 是连续的。
那么。。我们只需要维护最大和最小就行了。
注意正数和负数分别判断qwq
纪念暴零0的一天。
这道题很坑,因为题意中间说了,”For those who do not have the patience to read the problem statements”。
然而上面的是有用的。
给定一些数,有的增加能量,有的减少能量,有的可以增加或者减少能量。问你某些个能量能否组成。
开始的想法是 分别统计 正数 和负数 背包 计数所有的情况(最大1e9),然后判断是否存在差值等于k的情况。但是这样要保存的状态有点大。。
后来队友发现上面一个式子,保证了他的数组能量的出入是有规律限制的,限制的条件就是他的 能量得到的值 是连续的。
那么。。我们只需要维护最大和最小就行了。
注意正数和负数分别判断qwq
# include <bits/stdc++.h> using namespace std; int a[1005]; char b[1005]; int main() { int n,k; int t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); for(int i=0;i<n;i++) scanf("%d",&a[i]); getchar(); for(int i=0;i<n;i++) cin>>b[i]; int sum1=0,sum2=0; for(int i=0;i<n;i++) { if(b[i]=='L')sum1+=a[i]; else if(b[i]=='D')sum2-=a[i]; else {sum1+=a[i];sum2-=a[i];} } //cout<<sum1<<" "<<sum2; if(k>0){ if(k<=sum1) puts("yes"); else puts("no"); } else if(k<=0){ if(k>=sum2) puts("yes"); else puts("no"); } } return 0; }
相关文章推荐
- HDU6140--Hybrid Crystals(思维)
- Hybrid Crystals (2017多校 第八场) (思维题 视力题)
- HDU_6140 Hybrid Crystals 【思维】
- 2017多校联合第8场1008/hdu 6140Hybrid Crystals(思维)
- hdu6143-多校8&三种方法-组合数|递推|容斥-Killer Names
- Hybrid Crystals(hdu6140)
- 多校联合训练8&&HDU 5828
- HDU 6140 Hybrid Crystals【题意】【思维】
- 2017多校八 1008题 hdu 6140 Hybrid Crystals 推理
- HDU 6140 17多校8 Hybrid Crystals(思维题)
- HDU6140-Hybrid Crystals
- HDU 6140 Hybrid Crystals(思维)
- HDU 6140 Hybrid Crystals【思维】
- HDU-2017 多校训练赛8-1008-Hybrid Crystals
- HDU 2017 多校联合训练赛8 1008 6140 Hybrid Crystals
- hdu 6140 Hybrid Crystals 思维
- hdu6047-贪心&思维-2017多校(2)-Maximum Sequence
- 2017 HDU 6140 多校联合赛 Hybrid Crystals
- Hdu6140 Hybrid Crystals(2017多校第8场)
- 【多校训练】hdu 6140 Hybrid Crystals