Codeforces Round #663 (Div. 2)

2020/8/9晚上断网了,本来不想打就顺便看看题目,发现能做几个,然后就交了。(做完1、2两题才敢交)最终做了3个题tcl。

A - Suborrays

脑筋急转弯题目。位运算OR运算结果只会变大不会变小,直接正序输出就可

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{IO;int T;cin>>T;while(T--){int n;cin>>n;for(int i=1;i<=n;i++) cout<<i<<" ";cout<<endl;}return 0;
}

B - Fix You

这个题感觉比A还容易写出来。直接保证最后一行和最后一列出不去就行。

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#define debug(x) cout<<#x<<": "<<x<<" "
#include<iostream>
#include<algorithm>
using namespace std;
const int N=110;
int n,m;
char g[N][N];
int main()
{IO;int T;cin>>T;while(T--){cin>>n>>m;for(int i=1;i<=n;i++) cin>>g[i]+1;int res=0;for(int i=1;i<n;i++)if(g[i][m]!='D') res++;for(int j=1;j<m;j++)if(g[n][j]!='R') res++;cout<<res<<endl;}return 0;
}

C - Cyclic Permutations

正解:直接输出n!−2n−1n!-2^{n-1}n!2n1
歪门邪道(wtcl):无环转化一下就是两个数之间不能有一个数比他俩都小
于是尝试构造:对于1 2 3 4…n我们发现原序列满足,逆序也满足。
1 (3 4…n ) 2 只要括号里面没有环,原序列没有环
1 2 (4 … n) 3 同样只要括号里面没有环,原序列没有环

只要正序无环那么逆序也无环
于是f[i]=2×(f[i−2]+f[i−3]+...+f[1])+2f[i]=2×(f[i-2]+f[i-3]+...+f[1])+2f[i]=2×(f[i2]+f[i3]+...+f[1])+2(+2是1 2 3…n和n … 3 2 1)
因此答案是n!−f[n]n!-f[n]n!f[n]

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#include<iostream>
using namespace std;
typedef long long ll;
const int N=1000010,mod=1e9+7;
ll f[N];
int main()
{IO;int n;cin>>n;ll a=1;for(int i=1;i<=n;i++) a=a*1ll*i%mod;//预处理 n!f[1]=1,f[2]=3;//f[2]=2, f[2]=f[2]+f[1]=3 前缀和for(int i=3;i<=n;i++){f[i]=(2*f[i-2]%mod+2)%mod;f[i]=(f[i]+f[i-1])%mod;}cout<<((a-f[n]+f[n-1])%mod+mod)%mod<<endl;//前缀和return 0;
}

大佬:这种规律题目可以直接猜结论

D - 505

这题快写成模拟了注意n≤mn \leq mnm,对于n>3n>3n>3一定不符合直接输出-1。(n>3n>3n>3考虑2×22×22×24×44×44×4,一个4×44×44×4肯定有四个2×22×22×2因为2×22×22×2都是奇数个1,因而4×44×44×4中一定有偶数个1)自己就想到这。
大神题解
暴力枚举每一列的状态状态压缩
状态表示:①集合:f[i][j]表示第i列的状态是j并且符合题意的集合②属性:最小值
状态计算:枚举上一列的状态k如果ij能过转移则转移f[i][j]=min(f[i][j],f[i-1][k]+calc(now^j)
now是原数组该列的状态j是枚举的状态,由now->j花费的代价为calc(now^j)

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#define debug(x) cout<<#x<<": "<<x<<" "
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
const int N=1000010;
int n,m;
int a[5][N];
bool ok[10][10];
int f[N][10];
int lowbit(int x)
{return x&-x;
}
int calc(int x)
{int res=0;while(x){x-=lowbit(x);res++;}return res;
}
void init(int n)
{for(int i=0;i<1<<3;i++)for(int j=0;j<1<<3;j++){int cnt1[3];cnt1[0]=cnt1[1]=cnt1[2]=0;for(int k=0;k<3;k++){   if(i>>k&1) cnt1[k]++;if(j>>k&1) cnt1[k]++;}bool flag=1;for(int k=0;k<n-1;k++)//注意n-1if((cnt1[k]+cnt1[k+1])%2==0) flag=0;if(flag) ok[i][j]=1;}
}
int main()
{//OI;这个东西和scanf混用会出问题!!!cin>>n>>m;if(n>=4) return printf("-1\n"),0;if(n==1) return printf("0\n"),0;//神仙写法,学习了init(n);//预处理合法转移的状态 i jfor(int i=1;i<=n;i++)for(int j=1;j<=m;j++) scanf("%1d",&a[i][j]);memset(f,0x3f,sizeof f);for(int i=0;i<1<<n;i++) f[0][i]=0;for(int i=1;i<=m;i++){int now=a[1][i]+a[2][i]*2+a[3][i]*4;for(int j=0;j<1<<n;j++)for(int k=0;k<1<<n;k++)if(ok[j][k]) f[i][j]=min(f[i][j],f[i-1][k]+calc(now^j));}int res=0x3f3f3f3f;for(int i=0;i<1<<n;i++) res=min(res,f[m][i]);printf("%d\n",res);return 0;
}

要加油哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【每日一题】7月16日题目精讲—点权和

来源&#xff1a;牛客网&#xff1a; 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld题目描述 给你一棵树&#xff0c;最开始点权为0&#xff0c;每次将与一个点x树上距离<1的所…

中国开源年会 COSCon 2018 今起接受报名!

大会官网二维码名片&#xff1a;点击文末左下角阅读原文&#xff0c;直达报名链接写在大会前开源 20 年&#xff0c;我们遇到了什么问题&#xff1f;‍围绕开源的方式来开发软件项目&#xff0c;正在走向业界的主流。随着开源的崛起&#xff0c;相应的问题也来了&#xff1a;Re…

【Trie】阅读理解(luogu 3879/ybtoj Trie-4)

正题 luogu 3879 ybtoj Trie-4 题目大意 给你n篇文章&#xff0c;还有m个单词&#xff0c;问你这些单词在哪几篇文章中出现过 解题思路 对文章中的单词建Trie&#xff0c;然后那查询的单词去匹配 代码 #include<map> #include<vector> #include<cstdio> …

P6222-「P6156 简单题」加强版【莫比乌斯反演】

正题 题目链接:https://www.luogu.com.cn/problem/P6222 题目大意 给出kkk&#xff0c;TTT组询问给出nnn求 ∑i1n∑j1n(ij)kgcd(i,j)μ(gcd(i,j))2\sum_{i1}^n\sum_{j1}^n(ij)^k\times gcd(i,j)\times \mu(gcd(i,j))^2i1∑n​j1∑n​(ij)kgcd(i,j)μ(gcd(i,j))2 解题思路 开…

Codeforces Round #664 (Div. 2)

写了三个题结果C fst了O.0 A - Boboniu Likes to Color Balls 回文串&#xff0c;最多有球是一个奇数个。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #include<cstdio> #include<iostream> #include<algorithm> using namespace std…

2020 年百度之星·程序设计大赛 - 初赛一

2020 年百度之星程序设计大赛 - 初赛一 [toc] 6743 Drink 题解&#xff1a; 每一种饮料求一个卡路里&#xff0c;取最小值 第一看以为是背包&#xff0c;其实出题人在第二层 代码&#xff1a; #include<iostream> #include<cstdio> #include<string> #i…

.Net Core应用框架Util介绍(四)

上篇介绍了Util Angular Demo的目录结构和运行机制&#xff0c;本文介绍Util封装Angular的基本手法及背后的动机。Angular应用由Ts和Html两部分构成&#xff0c;本文介绍第一部分。Angular Ts的封装Ts是Angular的代码部分&#xff0c;用于编写页面逻辑。依赖注入( Dependency I…

【AC自动机】AC自动机(二次加强版)(luogu 5357)

正题 luogu 5357 题目大意 给你若干单词和一个字符串&#xff0c;让你查询每个单词在字符串中出现的次数 解题思路 AC自动机模板 先把单词丢进去&#xff0c;然后拿字符串去跑&#xff0c;每到一个点累计答案 因为数据较大&#xff0c;所以要先存起来&#xff0c;跑完后按…

Educational Codeforces Round 93 (Rated for Div. 2)

A - Bad Triangle 选出三个序列使之不能组成三角形。先把差距最大的选了&#xff0c;枚举中间值。两边之和不大于第三边。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #include<iostream> #include<algorithm> using namespace std; const i…

P4198-楼房重建【线段树】

正题 题目链接:https://www.luogu.com.cn/problem/P4198 题目大意 nnn条线&#xff0c;开始时第iii条是(i,0)(i,0)(i,0)的一个点。 每次有操作把第xxx条线变成(x,0)(x,0)(x,0)到(x,y)(x,y)(x,y)。然后求从(0,0)(0,0)(0,0)能看到几条线。 解题思路 把线变成斜率的话就是对于每…

2020牛客暑期多校训练营(第四场)

2020牛客暑期多校训练营&#xff08;第四场&#xff09; 这场属实有点难受 文章目录A Ancient DistanceB Basic Gcd Problem题目代码&#xff1a;C Count New StringD Dividing StringsE EliminateF Finding the Order题意&#xff1a;题解&#xff1a;代码&#xff1a;G Geome…

《C# 程序员的自我修养》送书活动结果公布

截止到9月28日24&#xff1a;00 &#xff0c;本次送书活动《C# 程序员的自我修养》共收到150多位同学参与回复。以下5位同学将获赠书籍一本&#xff1a;夏树、Damon、水墨清华、天天、kang以上同学请加小二微信领取赠书小二微信&#xff1a;geffzhang.NET社区新闻&#xff0c;深…

【AC自动机】单词(luogu 3966/ybtoj AC自动机-2)

正题 luogu 3966 ybtoj AC自动机-2 题目大意 给你n个单词&#xff0c;让你查询这写单词分别在这n个单词中出现过多少次 解题思路 先用AC自动机建好图&#xff0c;然后每个点的权值为1&#xff0c;然后向nx传递 代码 #include<cstdio> #include<cstring> #inclu…

AtCoder Beginner Contest 175总结

这次做了ABCE~ A - Rainy Season 懒得想直接分类讨论 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #include<string> #include<iostream> using namespace std; int main() {string s;cin>>s;int res0;if(s[0]R&&s[1]R&&a…

P5607-[Ynoi2013]无力回天NOI2017【线性基,线段树,树状数组】

正题 题目链接:https://www.luogu.com.cn/problem/P5607 题目大意 nnn个数字的序列&#xff0c;mmm次操作 区间[l,r][l,r][l,r]异或上一个值vvv询问区间[l,r][l,r][l,r]中选出一些数来异或的最大异或和 解题思路 最大异或和的话只能是线性基了&#xff0c;但是线性基的区间修…

牛客算法周周练15

牛客算法周周练15 文章目录A 数列下标B 可持久化动态图上树状数组维护01背包C 璀璨光滑D 树上求和E 算式子A 数列下标 题意很明确&#xff0c;再看看数据&#xff0c;所以我们直接两重循环&#xff0c;用数组b来记录右边第一个大的数的下标 代码&#xff1a; #include<bit…

使用 dotTrace 分析 .NET Core 代码问题

0.背景在项目开发之中&#xff0c;前期可能主要以保证任务完成为主&#xff0c;对于性能优化主要在于开发完成之后再来进行。可能在测试的时候发现部分接口的代码执行时间过长&#xff0c;但是又毫无头绪&#xff0c;这个时候你就需要性能分析工具来协助你排查问题了。常规性能…

【AC自动机】前缀匹配(ybtoj AC自动机-3)

正题 ybtoj AC自动机-3 题目大意 给你一个字符串和若干匹配串&#xff0c;问你匹配串的前缀和字符串的最大匹配 解题思路 先把所有匹配串丢进AC自动机&#xff0c;然后拿字符串去跑 每次只在当前位置存下贡献&#xff0c;然后按bfs的倒叙传递贡献&#xff0c;最后再倒着跑每…

Codeforces Global Round 10

这种大场全是神仙打架&#xff0c;向我这种菜菜就是掉分www太难了 神仙打架&#xff0c;百姓遭殃。 A - Omkar and Password 分析可以知道&#xff0c;只要数组元素不是全部相等答案就是1&#xff0c;如何数组元素全部相等答案就是n。 #define IO ios::sync_with_stdio(fals…

【每日一题】7月17日题目精讲—BOWL 碗的叠放

【每日一题】7月17日题目精讲—BOWL 碗的叠放 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 小H有n个碗需要放进橱柜&#xff0c;她希望将他们叠起来放置。你知道每个碗都…