题目链接:http://codeforces.com/contest/831/problem/C

题意:给定k个评委,n个中间结果。 假设参赛者初始分数为x,按顺序累加这k个评委的给分后得到k个结果,在这个过程中,某人只记得其中n次结果(n次结果不一样按照时间顺序来排列),问你参赛者的初始合法分数有多少种。

思路:维护一个评委给分的前缀和,然后枚举每一种可能的初始分数,然后判断当前枚举的这个分数经过k次累加分数后得到的k个结果有n个结果等于给定的中间结果即可。

#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<queue>
#include<vector>
#include<time.h>
#include<stack>
#include<set>
#include<cmath>
#include<functional>
#include<cstdlib>
using namespace std;
typedef long long int LL;
typedef unsigned long long int ULL;
const LL INF = 9223372036854775807L;
const int inf = 0x3f3f3f3f;
const int MAXN = + ;
const int MAXB = 8e6 + ;
set<LL>se;
LL val[MAXN], source[MAXN],pre[MAXN];
LL statu[MAXN];
bool visb[MAXB],vis[MAXB];
int main(){
#ifdef kirito
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
int start = clock();
int n, k;
while (~scanf("%d%d",&k,&n)){
se.clear();
memset(visb, , sizeof(visb));
memset(pre, , sizeof(pre));
for (int i = ; i <= k; i++){
scanf("%I64d", &val[i]);
pre[i] += pre[i - ] + val[i];
}
for (int i = ; i <= n; i++){
scanf("%I64d", &source[i]);
visb[source[i] + ] = ;
}
for (int i = ; i <= k; i++){
int cnt = ;
statu[] = source[]-pre[i];
memset(vis, , sizeof(vis));
if (se.count(statu[])){
continue;
}
for (int j = ; j <= k; j++){
statu[j] = statu[j-] + val[j];
if (statu[j] + <MAXB&&visb[statu[j] + ] && vis[statu[j] + ] == false){
cnt++;
vis[statu[j] + ] = true;
}
}
if (cnt == n){
se.insert(statu[]);
}
}
printf("%d\n", se.size());
}
#ifdef LOCAL_TIME
cout << "[Finished in " << clock() - start << " ms]" << endl;
#endif
return ;
}

最新文章

  1. js正则表达式图形化工具-rline
  2. 浅析JVM内存结构和6大区域(转)举例非常好
  3. PSAM卡与CPU(用户卡)的操作过程
  4. paip.云计算以及分布式计算的区别
  5. Java Mybatis 传参方式
  6. 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
  7. C# 数据库dataGridView刷新数据和主外键判断
  8. 金色的 SQL注意事项(1)
  9. PHP平台CMS系统Drupal小试身手----安装教程
  10. 关于centOS 7的服务启动,端口查询,防火墙管理
  11. java核心36
  12. dynamics crm跳转到手机版本的页面
  13. SASS学习笔记!(持续学习中..)
  14. Mybatis笔记二:接口式编程
  15. centos 下python升级
  16. str_replace 批量查找替换字符串
  17. 第七章 过滤器 Filter(二)
  18. PhpStorm,Pycharm,Goland破解
  19. ZOJ 3435 Ideal Puzzle Bobble
  20. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization【转】

热门文章

  1. Kohana Cache
  2. Linux用户和用户组指令
  3. 设计模式-Runoob:工厂模式
  4. django 给数据库批量添加数据
  5. chales抓包,模拟异常情况
  6. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_5_File类获取功能的方法
  7. 16/7/7_PHP-Static静态关键字
  8. 【ABAP系列】SAP ABAP ALV设置背景图片
  9. python 入门学习之anaconda篇
  10. postman小白教程