Atcoder Tenka1 Programmer Contest 2019
C
签到题,f[i][0/1]表示以i结尾最后一个为白/黑的最小值,转移显然。
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+;
int n,f[N][];
char s[N];
int main()
{
scanf("%d",&n);
scanf("%s",s+);
for(int i=;i<=n;i++)
if(s[i]=='.')
{
f[i][]=f[i-][];
f[i][]=min(f[i-][],f[i-][])+;
}
else{
f[i][]=f[i-][]+;
f[i][]=min(f[i-][],f[i-][]);
}
printf("%d\n",min(f[n][],f[n][]));
}
D
方案数=总方案数-不能拼成三角形的方案数。不能拼成三角形,即最长边大于等于边总和的一半。于是可以f[i]表示以i为最长边能组成三角形的方案数,g[i]表示凑成长度为i的边方案。f[0]=2^n,g[0]=1,然后每次转移f除以2即可。注意讨论最长边为总和一半的情况(没讨论WA了一发)。
#include<bits/stdc++.h>
using namespace std;
const int N=,mod=,inv2=,inv3=;
int n,ans,sum,lim,pw2[N],pw3[N],a[N],f[N*N],g[N*N];
int main()
{
scanf("%d",&n);
ans=f[]=g[]=;
for(int i=;i<=n;i++)f[]=2ll*f[]%mod;
for(int i=;i<=n;i++)
{
ans=3ll*ans%mod;
scanf("%d",&a[i]);
sum+=a[i];
for(int j=sum;j>=a[i];j--)
f[j]=(f[j]+1ll*f[j-a[i]]*inv2)%mod,g[j]=(g[j]+g[j-a[i]])%mod;
}
lim=(sum+)/;
for(int i=lim;i<=sum;i++)ans=(ans-3ll*f[i]%mod+mod)%mod;
if(sum%==)ans=(ans+3ll*g[lim])%mod;
printf("%d\n",ans);
}
E
很容易发现答案只有2种:1、所有系数的gcd的质因数。2、1~n以内符合条件的数(具体证明是看官方题解的)。第一种无脑枚举,第二种直接O(n^2)暴力即可。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+;
int n,m,a[N],h[N];
set<int>ans;
void check(int p)
{
for(int i=;i<p-;i++)h[i]=;
for(int i=,x;i<=n;i++)x=i%(p-),h[x]=(h[x]+a[i])%p;
for(int i=;i<p-;i++)if(h[i])return;
ans.insert(p);
}
int main()
{
scanf("%d",&n);
for(int i=n;i>=;i--)scanf("%d",&a[i]),m=__gcd(m,abs(a[i]));
for(int i=;i*i<=m;i++)
if(m%i==)
{
ans.insert(i);
while(m%i==)m/=i;
}
if(m!=)ans.insert(m);
for(int i=;i<=n;i++)
if(a[]%i==)
{
int flag=;
for(int j=;j*j<=i;j++)if(i%j==){flag=;break;}
if(flag)check(i);
}
for(auto x:ans)printf("%d\n",x);
}
F
咕
rank=105,rating+=108,因为原本rating过低。
Atcoder Tenka1 Programmer Contest 2019的更多相关文章
- Atcoder Tenka1 Programmer Contest 2019 题解
link 题面真简洁 qaq C Stones 最终一定是连续一段 . 加上连续一段 # .直接枚举断点记录前缀和统计即可. #include<bits/stdc++.h> #define ...
- Atcoder Tenka1 Programmer Contest 2019 E - Polynomial Divisors
题意: 给出一个多项式,问有多少个质数\(p\)使得\(p\;|\;f(x)\),不管\(x\)取何值 思路: 首先所有系数的\(gcd\)的质因子都是可以的. 再考虑一个结论,如果在\(\bmod ...
- Atcoder Tenka1 Programmer Contest 2019 D Three Colors
题意: 有\(n\)个石头,每个石头有权值,可以给它们染'R', 'G', 'B'三种颜色,如下定义一种染色方案为合法方案: 所有石头都染上了一种颜色 令\(R, G, B\)为染了'R', 染了'G ...
- Atcoder Tenka1 Programmer Contest 2019题解
传送门 \(C\ Stones\) 最后肯定形如左边一段白+右边一段黑,枚举一下中间的断点,预处理一下前缀和就可以了 int main(){ // freopen("testdata.in& ...
- 【AtCoder】Tenka1 Programmer Contest 2019
Tenka1 Programmer Contest 2019 C - Stones 题面大意:有一个01序列,改变一个位置上的值花费1,问变成没有0在1右边的序列花费最少多少 直接枚举前i个都变成0即 ...
- Atcoder Tenka1 Programmer Contest D: IntegerotS 【思维题,位运算】
http://tenka1-2017.contest.atcoder.jp/tasks/tenka1_2017_d 给定N,K和A1...AN,B1...BN,选取若干个Ai使它们的或运算值小于等于K ...
- Atcoder Tenka1 Programmer Contest C C - 4/N
http://tenka1-2017.contest.atcoder.jp/tasks/tenka1_2017_c 我怀疑我是不是智障.... 本来一直的想法是能不能构造出答案,把N按奇偶分,偶数好办 ...
- Tenka1 Programmer Contest 2019
C:即要使前一部分为白色后一部分为黑色,枚举分割点前缀和计算答案取min即可. #include<bits/stdc++.h> using namespace std; #define l ...
- Tenka1 Programmer Contest 2019 D - Three Colors
Three Colors 思路:dp 设sum为所有边的总和 不能组成三角形的情况:某条边长度>=ceil(sum/2),可以用dp求出这种情况的方案数,然后用总方案数减去就可以求出答案. 注意 ...
随机推荐
- postman测试方法,出现400错误码
下午毛概课上帮同学debug了个错误: postman测试 ,得到返回 400的状态码错误: 查询博客: https://blog.csdn.net/zhangmengleiblog/article/ ...
- 缓存ABC
缓存ABC Intro 缓存是一种比较常见的用来将提高系统性能的方式.从线程缓存.进程缓存.到内存缓存再到分布式缓存再到CDN,都是属于缓存的范畴. 缓存的本质是空间换时间以提高读的效率,牺牲一些内存 ...
- spring学习总结——高级装配学习一(profile与@Conditional)
前言: 在上一章装配Bean中,我们看到了一些最为核心的bean装配技术.你可能会发现上一章学到的知识有很大的用处.但是,bean装配所涉及的领域并不仅仅局限于上一章 所学习到的内容.Spring提供 ...
- Ubuntu下创建XFS文件系统的LVM
以前在Linux下面玩LVM,一般都是选择ext3.ext4格式的文件系统,最近在Ubuntu 16.04.5下安装配置一个MySQL数据库服务器,遂测试了一下XFS文件系统的LVM,其实仔细对比下来 ...
- Python变量之白首如新,倾盖如故
python中的变量变量:将运算的中间结果暂存到内存中,方便后续程序调用.变量的命名规则:1.变量名由字母.数字.下划线组成.2.变量名可以用字母.下划线开头,但是不能以数字开头.3.变量名是区分大小 ...
- c/c++ linux epoll系列3 利用epoll_wait设置timeout时间长度
linux epoll系列3 利用epoll_wait设置timeout时间长度 epoll_wait函数的第四个参数可以设置,epoll_wait函数的等待时间(timeout时间长度). 例子1, ...
- macos 远程 windows 10
使用的工具:Parallels Client 免费,可以从windows store 免费下载: 只有这个最好用,希望能帮到你.和原生的windows 远程桌面功能很像:
- django 视图模式
一 视图 FBV --- function based view(基于函数视图) CBV --- class based view(基于类的视图函数) 二 请求方式 get post put/patc ...
- excel poi导出demo
最近做了一个excel 导出的demo,是抄写老大的(嘻嘻嘻),现在把demo源码放在这里 链接:https://pan.baidu.com/s/1_xj0hej-1xwX5JF39acEOg 提取码 ...
- Python标准库之ConfigParser模块
配置文件的格式 a) 配置文件中包含一个或多个 section, 每个 section 有自己的 option: b) section 用 [sect_name] 表示,每个option是一个键值对, ...