AGC031 A~C
A题意:给定字符串s,求无重复字符子序列个数(子序列相同位置不同算不同)
在最后加一串a~z表示选了这些就是不选这个字符了,然后答案就是每次选每个字符位置的方案数的积
#include<iostream>
#include<cstdio>
using namespace std;
const int N=100005,mod=1e9+7;
int n;
char s[N];
long long ans=1,a[30];
int main()
{
scanf("%d%s",&n,s+1);
for(int i=1;i<=n;i++)
a[s[i]-'a']++;
for(int i=0;i<26;i++)
ans=ans*(a[i]+1)%mod;
printf("%lld\n",(ans-1+mod)%mod);
return 0;
}
B题意:给定一个颜色序列,可以操作0~inf次,每次操作选两个相同色把中间全涂成这个色
最后结果一定是若干个色块,设f[i]为涂完前i个并且i点保持原来颜色的方案数,枚举和i颜色相同的j表示涂这一段,f[i]=Σf[j-1],为避免重复计数,j-1和i必须不同色(保证色块最长),然后前缀和优化即可
#include<iostream>
#include<cstdio>
using namespace std;
const int N=200005,mod=1e9+7;
int n,a[N],f[N],s[N];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
f[0]=1,s[a[1]]=1;
for(int i=1;i<=n;i++)
{
// for(int j=1;j<=i;j++)
// if(a[i]==a[j]&&a[j-1]!=a[i])
// f[i]=(f[i]+f[j-1])%mod;
f[i]=s[a[i]];
if(a[i+1]!=a[i])
s[a[i+1]]=(s[a[i+1]]+f[i])%mod;
}
printf("%d\n",f[n]);
return 0;
}
C题意:给定n,s,t,求一个0~2^n-1的排列使得相邻两个数二进制下有且只有一个位不同,或者输出无解(格雷码那样)
首先st二进制下不同位有偶数个是无解,因为没走一位,和t二进制下不同位的数量的奇偶性就会变一次,最后第2^n-2个和t二进制下不同位的数量是偶数,不符合要求
然后证明其他的一定能构造出来,首先n=1是可行的,假设当先n=k都可以,那么证明n=k+1可以;
把st不同的最后一位抠掉(操作的时候是变成0),造出s't',设c为s'抠掉最后一位,d为c抠掉不同的最后一位,这样长为2^(n-1)的(s',c)和(d,t')就可以求了,递归实现
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,a,b;
void prin(int a,int b,int v)
{
if(a==b)
{
printf("%d ",a);
return;
}
int x=(a^b)&(-(a^b));
v^=x;
int y=v&(-v);
prin(a,a^y,v);
prin(a^y^x,b,v);
}
int main()
{
scanf("%d%d%d",&n,&a,&b);
if(__builtin_popcount(a^b)&1)
{
puts("YES");
prin(a,b,(1<<n)-1);
}
else
puts("NO");
return 0;
}
AGC031 A~C的更多相关文章
- AtCoder Grand Contest 031 (AGC031) D - A Sequence of Permutations 其他
原文链接https://www.cnblogs.com/zhouzhendong/p/AGC031D.html 前言 比赛的时候看到这题之后在草稿纸上写下的第一个式子就是 $$f(p,q) = pq^ ...
- agc031
T1 题意:给你一个串,求所有子序列个数,满足没有相同字符.1e5,2s. 解:考虑一个合法的子序列.其中每个字母的出现位置都有(出现次数)种选择.还可以不选,要 + 1. 然后乘起来就做完了.如果变 ...
- 【AtCoder】AGC031
A - Colorful Subsequence 答案是 \(\prod_{c = 'a'}^{'z'} (cnt[c] + 1)\) #include <bits/stdc++.h> # ...
- AtCoder Grand Contest 031 B - Reversi
https://atcoder.jp/contests/agc031/tasks/agc031_b B - Reversi Time Limit: 2 sec / Memory Limit: 1024 ...
- AtCoder Grand Contest 031 B - Reversi(DP)
B - Reversi 题目链接:https://atcoder.jp/contests/agc031/tasks/agc031_b 题意: 给出n个数,然后现在你可以对一段区间修改成相同的值,前提是 ...
- Atcoder AGC031C Differ By 1 Bit (构造、二进制)
哎呀这个C怎么比B还水....(我现在大概也就会做点这种水题了吧) 题目链接 https://atcoder.jp/contests/agc031/tasks/agc031_c 题目大意 符号约定: ...
- Atcoder AGC031B Reversi (DP计数)
简单的计数题.(总算做出一道AGC的B题了,然而这场比赛我忘记打了233333) 题目链接: https://atcoder.jp/contests/agc031/tasks/agc031_b 题意: ...
- AtCoder整理(持续更新中……)
做了那么久的atcoder觉得自己的题解发的很乱 给有想和我一起交流atcoder题目(或者指出我做法的很菜)(或者指责我为什么整场比赛只会抄题解)的同学一个索引的机会??? 于是写了个爬虫爬了下 A ...
- 【做题记录】AtCoder AGC做题记录
做一下AtCoder的AGC锻炼一下思维吧 目前已做题数: 75 总共题数: 239 每一场比赛后面的字母是做完的题,括号里是写完题解的题 AGC001: ABCDEF (DEF) AGC002: A ...
随机推荐
- indexOf 和 lastIndexOf 的区别
indexOf 和 lastIndexOf 是什么? indexOf 和 lastIndexOf 都是索引文件 indexOf 是查某个指定的字符串在字符串首次出现的位置(索引值) (也就是从前往后查 ...
- 芯片史称:“长平之战”----Intel的东进与ARM的西征(3)--人生如戏,全靠演技
http://www.36kr.com/p/177143.html 从 2003 年到 2008 年,处理器双雄 Intel 和 AMD 在 64 位 CPU 领域展开了一场长达五年,极为惨烈的科技战 ...
- 李洪强iOS开发之-入门指南
李洪强iOS开发之-入门指南 1零基础小白如何进行iOS系统学习 首先,学习目标要明确:其次,有了目标,要培养兴趣,经常给自己一些正面的反馈,比如对自己的进步进行鼓励,在前期小步快走:再次,学技术最重 ...
- npm ERR! code EINTEGRITY npm ERR! sha1- 报错解决办法
npm ERR! code EINTEGRITY npm ERR! sha1- 报错日志 npm ERR! code EINTEGRITY npm ERR! sha1-OGchPo3Xm/Ho8jAM ...
- Gym - 101164C - Castle KMP
题目链接:传送门 题解: 利用KMP的fail失配数组,快速找到当前后缀与前缀的公共前缀点 #include<bits/stdc++.h> using namespace std; #pr ...
- Mongo.setReadPref(mode, tagSet) primaries and secondaries are treated equivalently. 读优先级策略
https://docs.mongodb.com/manual/reference/method/Mongo.setReadPref/#Mongo.setReadPref Mongo.setReadP ...
- MapReduce ChainMapper/ChainReducer
The ChainMapper class allows to use multiple Mapper classes within a single Map task. The ChainRedu ...
- stl里面的空间适配器
一般而言,如果频繁地向system heap申请和释放空间很小的内存空间块(小于128B的),就会对系统内存资源产生很多内存碎片(fragment)的问题,而C++的::operator new() ...
- asp.net微软图表控件MsChart
前段时间,开发项目时,由于需要,需要将一些数据统计,并以图表形式显示.由于是asp.net,所以就找到了MsChart图表控件,还是挺方便实用的,分享一下. MsChart控件的主要组成如图所示 工具 ...
- javascript之表格节点操作
<html> <div class='add'> 名字: <input type="" name=""&g ...