BZOJ4045 : [Cerc2014] bricks
2015-08-03 01:23
274 查看
首先求出B和W的个数,如果只出现了一种那么直接输出sum(k)。
否则依次扫描,能割就割,时间复杂度$O(n)$。
否则依次扫描,能割就割,时间复杂度$O(n)$。
#include<cstdio> #define N 100010 typedef long long ll; int T,n,i,a ,b ,c[2],d[2],ans;ll x;char s[2]; int main(){ scanf("%d",&T); while(T--){ scanf("%d",&n); c[0]=c[1]=d[0]=d[1]=ans=0; for(i=1;i<=n;i++)scanf("%d%s",&b[i],s),a[i]=s[0]=='B',c[a[i]=s[0]=='B']+=b[i]; if(!c[0]||!c[1]){printf("%d\n",c[0]+c[1]);continue;} for(i=1;i<=n;i++){ x=(ll)c[a[i]]*d[a[i]^1]-(ll)d[a[i]]*c[a[i]^1]; if(x%c[a[i]^1]||x<=0||x/c[a[i]^1]>b[i])d[a[i]]+=b[i]; else ans++,d[a[i]]=b[i]-x/c[a[i]^1],d[a[i]^1]=0; } printf("%d\n",ans); } return 0; }
相关文章推荐
- BootStrap按钮组
- dede模版列表调用文章正文内容的方法
- 浏览器编码
- 杭电1016
- 杭电1241
- SDSoC使用体验
- 2015计算机类保研夏令营感悟1(武汉大学计算机学院)
- Binary Tree Level Order Traversal
- 编程之美:第二章 数字之魅 2.21只考加法的面试题
- [hdu3364]xor方程组消元
- 编程之美:第二章 数字之魅 2.18数组分割
- 编程之美:第二章 数字之魅 2.10寻找数组中的最大值和最小值
- 编程之美: 第二章 数字之魅 2.14求数组的子数组之和的最大值
- 记一个推导
- Struts2开发环境搭建
- iOS 之 block
- 编程之美: 第二章 数字之魅 2.11寻找最近点对
- H264学习笔记-名词解释(备忘+不定期更新)
- 编程之美:第三章 结构之法 3.11程序改错
- 编程之美:第二章 数字之魅 2.13子数组的最大乘积