Codeforces Round #266 (Div. 2)-C,D
来源:互联网 发布:ptc三维软件 编辑:程序博客网 时间:2024/05/17 09:00
C - Number of Ways
直接暴力从前往后寻找,如果找到1/3sum的位置,那么标记++。找到2/3的位置,总数加上标记数。
#include<stdio.h>#include<iostream>#include<stdlib.h>#include<string.h>#include<algorithm>#include<vector>#include<math.h>#include<queue>#include<stack>#include<map>#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;#define maxn 550000#define mod 10000007#define LL __int64LL a[maxn];int main(){ int n; while(~scanf("%d",&n)) { LL sum=0; for(int i=1;i<=n;i++) { scanf("%I64d",&a[i]); sum+=a[i]; } if(sum%3) { cout<<"0"<<endl; continue; } sum=sum/3; LL ans=0; LL now=0; LL s=0; for(int i=1;i<n;i++) { now+=a[i]; if(sum*2==now) { ans+=s; } if(now==sum) { s++; } } cout<<ans<<endl; } return 0;}D - Increase Sequence
先把a数组变成需要加多少变成h。
然后在对a数组前向差分得出b数组。
cnt:标记到当前位置,有几个l没有和r匹配
如果b[i]==1:
说明当前位置有一个l,cnt++;
如果b[i]==0:
1,当前位置什么都没有
2,当前位置有一个l,一个r。
因为有一个l,所以cnt++.
有一个r,所以总数*=cnt,cnt--;
相当于总数*=(cnt+1);
如果b[i]==-1:
当前位置有一个r,所以总数*=cnt,cnt--;
如果b[i]不等于上面的三种情况,说明无解!
#include<stdio.h>#include<iostream>#include<stdlib.h>#include<string.h>#include<algorithm>#include<vector>#include<math.h>#include<queue>#include<stack>#include<map>#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;#define maxn 550000#define mod 1000000007#define LL __int64LL a[maxn];LL b[maxn];int main(){ int n,h; while(~scanf("%d%d",&n,&h)) { for(int i=1;i<=n;i++)scanf("%I64d",&a[i]); for(int i=1;i<=n;i++)a[i]=h-a[i]; for(int i=1;i<=n+1;i++) { b[i]=a[i]-a[i-1]; } LL ans=1; LL cnt=0; for(int i=1;i<=n+1;i++) { if(b[i]==1) { cnt++; } else if(b[i]==-1) { ans=ans*(cnt)%mod; cnt--; } else if(b[i]==0) { ans=ans*(cnt+1)%mod; } else { ans=0;break; } ans=ans%mod; } cout<<ans<<endl; } return 0;}
0 0
- Codeforces Round #266 (Div. 2)-C,D
- Codeforces Round #251 (Div. 2) C、D
- Codeforces Round #252 (Div. 2)-C,D
- Codeforces Round #251 (Div. 2)-C,D
- Codeforces Round #FF (Div.2 )(C,D)
- Codeforces Round #258 (Div. 2) C, D
- Codeforces Round #328 (Div. 2) C ,D
- Codeforces Round #352 (Div. 2) C D
- Codeforces Round #427 (Div. 2) C D
- Codeforces Round #179 (Div. 2)A、B、C、D
- Codeforces Round #186 (Div. 2)A、B、C、D、E
- Codeforces Round #202 (Div. 2) (A、B、C、D)
- Codeforces Round #211 (Div. 2)(A,B,C,D)
- Codeforces Round #220 (Div. 2)(A,B,C,D)
- Codeforces Round #231 (Div. 2)A, B, C, D
- Codeforces Round #258 (Div. 2)-(A,B,C,D,E)
- Codeforces Round #246 (Div. 2) A,B,C,D
- Codeforces Round #261 (Div. 2) A,B,C,D,E
- primary主库上创建表空间无法同步到物理standby和逻辑standby
- 厦门大学智能多媒体实验室2012 - Summer School日程表
- 用户积分排名算法
- Keil C51编译及连接技术
- openstack 运行时调度思路
- Codeforces Round #266 (Div. 2)-C,D
- Simple Factory模式实例
- poj 3923 模拟
- java软件开发技术面试2015---持续更新中。。。
- div style常用属性
- matlab中size的简单使用
- Cocos2d-x 3.0正式版及android环境搭建详细教程
- CentOS7 最小化安装后,安装配置并启动httpd的步骤
- Android JNI开发环境搭建