暴力+map——Codeforces831C Jury Marks
来源:互联网 发布:淘宝无忧退货流程 编辑:程序博客网 时间:2024/06/06 19:15
题面:cf831c
简要题意:给出k个数a[i],给出n个b[i],每个b[i]值为a[1]+a[2]+…+a[不知道位置]+某一未知初始值(每种情况初始值是一样的),求可能的初始值有多少
我们枚举b[1]这个值出现的位置在哪里,然后往左往右一一匹配,如果每个b[i]都出现过了说明这个初始值是合法的,用map判断去重后答案加1
时间复杂度
只不过预处理的时候写的姿势要好,否则要小心TLE
#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#include <iostream>#include <ctime>#include <map>#include <queue>#include <cstdlib>#include <string>#include <climits>#include <set>#include <vector>using namespace std;map<int,bool>mp;int k[8000010],q[4010],a[4010],b[4010];int main(){ int K,n;scanf("%d%d",&K,&n); for(int i=1;i<=K;i++)scanf("%d",&a[i]); for(int i=1;i<=n;i++){ scanf("%d",&b[i]); k[b[i]+4000000]++; } int ans=0; for(int i=1;i<=K;i++){ int p=0;memset(q,0,sizeof q); int r=b[1];for(int j=i+1;j<=K;j++){ r+=a[j]; if(r>=-4000000&&r<=4000000&&k[r+4000000])p++,k[r+4000000]--,q[j]=1; } r=b[1];for(int j=i;j;j--){ if(r>=-4000000&&r<=4000000&&k[r+4000000])p++,k[r+4000000]--,q[j]=1; r-=a[j]; } if(p==n&&!mp[r])mp[r]=1,ans++; for(int j=1;j<=K;j++){ r+=a[j];if(q[j])k[r+4000000]++; } } printf("%d",ans); return 0;}
阅读全文
1 0
- 暴力+map——Codeforces831C Jury Marks
- CF831C-Jury Marks(map+vector)
- Codeforces-831C Jury Marks(暴力)
- Codeforces 831C Jury Marks【暴力枚举】
- Jury Marks
- CF831C-Jury Marks
- Codeforces831 C. Jury Marks
- C. Jury Marks
- C.Jury Marks
- CodeForces 831C Jury Marks
- Codeforces 831 C Jury Marks
- codeforces 831C Jury Marks
- 【Codeforces】831C Jury Marks
- Jury Marks <思维题>
- Codeforces-831C Jury Marks
- Codeforces Round #424 (Div. 2)C. Jury Marks 暴力 D. Office Keys 二分 E. Cards Sorting 树状数组
- 解题报告:Codeforces Round #424 Div. 2 C. Jury Marks 记录STL::map的一个小细节
- CodeForces 831C Jury Marks(set)
- OpenCV演示程序 汇总
- 【二维树状数组--模板】poj 2155 Matrix、poj 1195 Mobile phones
- 监听器+过滤器+拦截器区别(二)
- 类方法与实例方法
- Struts2中只对登陆时验证
- 暴力+map——Codeforces831C Jury Marks
- Linux系统中安装jdk与tomcat
- 各级标签等应用(第五章)
- CSS基础属性
- STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- VMware ,CentOs 7设置固定IP
- 留着以后慢慢做的数据结构
- 判断是否邮箱格式
- css样式-盒子、定位、背景色、尺寸