Codeforces Round #424 C Jury Marks 思维
来源:互联网 发布:闪字制作软件下载 编辑:程序博客网 时间:2024/06/17 18:26
题目链接
题意:
你有一个初始分数,有k个评委按顺序依次对你的分数进行修改,结束后你记得n个你的分数修改过程中出现过的值。
询问你的初始分数可能有多少种情况。
思路:
这个题当时局限于c题一般就不可以暴力了.忘了数据量....想着逆推,最后也没想明白.还是真菜.
这个题目让我们确定初始的分数,我们知道对于每个记录i,都可能是第j个人打完之后得到的
分数,为此我们要得到初始分数x,就需要记录k个人打分的前缀和,得到分数的变化情况,又因
为多个相同的分数变化对结果无意义,所以进行一个去重。
因为每个b都可能在a的每个位置产生变化,所以说我们只要知道一个b和ai的情况,即可推出
初始分数,进而验证剩下的是否满足.又因为b是互补相同的,当初始分数确定时,对于b他们不
会在同一个位置满足。(这就好比n2的枚举吧,假设你枚举一个bi1,得到在aj1处满足,进而求
得bi2在aj2处满足,那你枚举bi2时得到的结果也是相同的,所以只需要枚举一个b的就可以,当对
所有a的位置都匹配一次,进而得到其他位置的匹配.)
我们假设得到的初试分数为x,分数的变化为s,当前的记录为bi,我们由一个位置推出了初试分数
为x,怎么样验证呢?
我们对于自己求出的分数变化s,有s=bi-x,因为b都不一样,所以得到的分数变化也不相同,我们就看这个s,
有没有在我们记录的前缀和中出现过,如果出现了n个,就满足,否则不满足.
#include<bits/stdc++.h>#define Ri(a) scanf("%d", &a)#define Rl(a) scanf("%lld", &a)#define Rf(a) scanf("%lf", &a)#define Rs(a) scanf("%s", a)#define Pi(a) printf("%d\n", (a))#define Pf(a) printf("%lf\n", (a))#define Pl(a) printf("%lld\n", (a))#define Ps(a) printf("%s\n", (a))#define W(a) while(a--)#define CLR(a, b) memset(a, (b), sizeof(a))#define MOD 1000000007#define inf 0x3f3f3f3f#define exp 0.00000001#define pii pair<int, int>#define mp make_pair#define pb push_backusing namespace std;typedef long long ll;const int maxn=2333;const int base=9999999;int n,k;int a[maxn],b[maxn],sum[maxn];int book[2*base];int main(){Ri(k),Ri(n);for(int i=1;i<=k;i++){Ri(a[i]);sum[i]=sum[i-1]+a[i];book[sum[i]+base]=1;}sort(sum+1,sum+k+1);//去重函数要先排序再去重.k=unique(sum+1,sum+1+k)-(sum+1);for(int i=1;i<=n;i++)Ri(b[i]);int ans=0;for(int i=1;i<=k;i++){int kk=b[1]-sum[i];int cnt=0;for(int j=1;j<=n;j++){cnt+=book[b[j]-kk+base];}if(cnt==n)ans++;}Pi(ans); return 0;}
阅读全文
0 0
- Codeforces Round #424 C Jury Marks 思维
- Codeforces Round #424 C. Jury Marks (思维?)
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)-831C Jury Marks(思维)
- Codeforces Round #424 (Div. 2) C. Jury Marks (思维题)
- Codeforces Round #424 (Div. 2) C. Jury Marks
- CF Round #424( Div.2) C. Jury Marks 【思维+STL】
- CodeForces 831C Jury Marks
- Codeforces 831 C Jury Marks
- codeforces 831C Jury Marks
- 【Codeforces】831C Jury Marks
- Codeforces-831C Jury Marks
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)C. Jury Marks
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) ..C. Jury Marks
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)-模拟-C. Jury Marks-
- CF --- 831C Jury Marks 【思维】
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) 831C. Jury Marks【二分】【水题】
- 解题报告:Codeforces Round #424 Div. 2 C. Jury Marks 记录STL::map的一个小细节
- Codeforces Round #424 (Div. 2)C. Jury Marks 暴力 D. Office Keys 二分 E. Cards Sorting 树状数组
- properties文件
- 【GDOI2018模拟7.14】小奇的糖果
- c++ Premier 学习笔记(unit2 变量和基本类型-对象与初始化
- CSS介绍
- BZOJ 1145 [CTSC 2008] 树状数组+组合数学
- Codeforces Round #424 C Jury Marks 思维
- InnoDB调优-索引优化策略
- hrbust 1401 九连环(矩阵快速幂)
- c++ Premier 学习笔记(unit2 变量和基本类型 -声明与定义
- ios单例模式的实现
- 解决weex点击事件触发两次
- hibernate_多对多关联关系配置
- 安卓高德地图定位篇-(1)
- Mockito与Spring中@Autowired与@InjectMocks组合