codeforces831c 思维
生活随笔
收集整理的這篇文章主要介紹了
codeforces831c 思维
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:一個比賽中,n裁判依次給你打分,第i個裁判給了A[i]分,但你記性不好,沒有記住所有得分,連初始分都忘記了,只記得m個加完分后的總分B[i](不是按順序的),且B[i]互不相同。問:初始分有多少種可能的情況。點擊打開鏈接
#include <iostream> #include <cstdio> #include<algorithm> #include <cstring> using namespace std; int main() {int n,k;int a[2005],b[2005],c[2005];memset(a,0,sizeof(a));memset(b,0,sizeof(b));cin>>k>>n;for(int i=1;i<=k;++i){scanf("%d",&a[i]);c[i]=a[i];a[i]+=a[i-1];}sort(a+1,a+k+1);k=unique(a+1,a+k+1)-a-1;for(int i=1;i<=n;++i)scanf("%d",&b[i]);int score,flag,ans=0,ant,tag;for(int i=1;i<=k;++i){score=b[1]-a[i];ant=0;for(int j=1;j<=n;++j){tag = b[j]-score;if(binary_search(a+1,a+k+1,tag)){ant++;}elsebreak;}if(ant==n)ans++;}cout<<ans<<endl;return 0; } #include <iostream> #include <cstdio> #include<algorithm> #include <cstring> using namespace std; int main() {int n,k;int a[2005],b[2005],c[2005];memset(a,0,sizeof(a));memset(b,0,sizeof(b));cin>>k>>n;for(int i=1;i<=k;++i){scanf("%d",&a[i]);c[i]=a[i];a[i]+=a[i-1];}sort(a+1,a+k+1);k=unique(a+1,a+k+1)-a-1;for(int i=1;i<=n;++i)scanf("%d",&b[i]);int score,flag,ans=0,ant=0,tag;for(int i=1;i<=k;++i){score=b[1]-a[i];ant=0;for(int j=1;j<=n;++j){tag = b[j]-score;flag=0;for(int q=1;q<=k;++q){if(tag==a[q]){ant++;flag=1;break;}}if(!flag)break;}if(ant==n)ans++;}cout<<ans<<endl;return 0; }總結
以上是生活随笔為你收集整理的codeforces831c 思维的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最短路径·三:SPFA算法 HihoCo
- 下一篇: CodeForces - 831D O