Codeforces Round #266 (Div. 2)-C,D
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 __int64
LL 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 __int64
LL 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;
}
Codeforces Round #266 (Div. 2)-C,D相关推荐
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #563 (Div. 2)/CF1174
Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...
- 构造 Codeforces Round #302 (Div. 2) B Sea and Islands
题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...
- Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...
- Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...
- Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...
- Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...
- Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...
- Codeforces Round #699 (Div. 2) (A ~ F)6题全,超高质量良心题解【每日亿题】2021/2/6
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) (A.B.C)[每日亿题]2021/2/ ...
最新文章
- FPGA的设计艺术(14)使用函数和任务提升逻辑的可重用性
- 2016年第七届蓝桥杯 - 国赛 - Java大学C组 - I. 路径之谜
- 飞鸽传书2007程序语言的面向对象最后会成自然语言吗?
- leetcode —— 字符串相关(28、344)
- 形式语言与自动机总结
- ios 定位权限获取
- Excel查找快捷键:Ctrl+F
- mysql删库命令是啥_删除数据库的命令是什么?
- 电脑bios进入方法介绍
- 三星R463无线网卡驱动,声卡驱动,FN快捷键驱动,Easy_Display_Manager
- IDEA谷歌翻译插件提示:更新 TKK 失败,请检查网络连接
- iPhone设备零日漏洞,5亿用户面临攻击
- python 法律检索_Python爬虫进阶必备 | 某裁判文书检索网站加密分析与自动登录实现...
- oracle全文检索
- SpringBoot 项目单元测试
- 中国大陆地区W酒店推出全新夏日计划“幻梦一夏”
- ‘findstr‘ 不是内部或外部命令,也不是可运行的程序或批处理文件...
- 典型的单管共射极放大电路
- WinCC控件之ShockwaveFlash
- win10 升级到21H1 后Thinkpad X系列本本 音频驱动 没有声音