牛客练习赛 60(待补E-长链剖分或者dsu)

A.大吉大利

位运算有独立性,按位计算对答案的贡献即可。

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=1000010;
int cnt[40],n;
ll a[N];
int main()
{IO;int T=1;//cin>>T;while(T--){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];for(int j=0;j<30;j++)if(a[i]>>j&1) cnt[j]++;}ll res=0;for(int i=1;i<=n;i++){for(int j=0;j<30;j++)if(a[i]>>j&1) res+=(1ll<<j)*cnt[j];}cout<<res<<'\n';       }return 0;
}

B.三角形周长和

不难分析出一条边会被n−2n-2n2个三角形公用,因此求出任意两点的曼哈顿路径✖(n−2)(n-2)(n2)即可得出所有三角形周长和,过程中取模即可。

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
#define x first
#define y second
using namespace std;
typedef pair<int,int> pii;
const int N=1010;
pii p[N];
int n;
int main()
{IO;int T=1;//cin>>T;while(T--){cin>>n;for(int i=1;i<=n;i++) cin>>p[i].x>>p[i].y;ll res=0;for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++){ll dx=abs(p[i].x-p[j].x);ll dy=abs(p[i].y-p[j].y);res=(res+dx+dy)%mod;}res=res*(n-2)%mod;cout<<res<<'\n';}return 0;
}

C.操作集锦

菜菜不会啊啊啊
大佬题解
状态表示:f(i,j)f_{(i,j)}f(i,j)表示考虑前iii个字符,长度是jjj的不重复子序列的个数
状态转移:对于第iii个字符,有两种选择,如果不选择方案数是f(i−1,j)f_{(i-1,j)}f(i1,j),如果选择方案数是f(i−1,j−1)−f(k−1,j−1)f_{(i-1,j-1)}-f_{(k-1,j-1)}f(i1,j1)f(k1,j1)kkk是在iii之前最后一次sis_isi出现的位置
看了这个方法越想越觉得妙,所以所以我不想啦hhhh

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=1010;
const ll mod=1e9+7;
ll f[N][N];
int pre[30];
int n,m;
char s[N];
int main()
{IO;int T=1;//cin>>T;while(T--){cin>>n>>m;cin>>s+1;for(int i=0;i<=n;i++) f[i][0]=1;for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){f[i][j]=f[i-1][j]+f[i-1][j-1];if(pre[s[i]-'a']) f[i][j]-=f[pre[s[i]-'a']-1][j-1];f[i][j]%=mod;}pre[s[i]-'a']=i;}cout<<(f[n][m]%mod+mod)%mod<<'\n';}return 0;
}

还有一种序列自动机的做法,没学过,回来补一下。
学习序列自动机了,发现上述dp是显然的,我还是见的题太少了~~刷着题补着吧

状态表示:f(i,j)f_{(i,j)}f(i,j)表示以iii结尾的子序列并且长度是jjj
状态转移:借助序列自动机找出第一次出现的子序列

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=1010;
const ll mod=1e9+7;
ll f[N][N];
int ne[N][30];
int n,m;
char s[N];
int main()
{IO;int T=1;//cin>>T;while(T--){cin>>n>>m;cin>>s+1;for(int i=n;i;i--){for(int j=0;j<26;j++)ne[i-1][j]=ne[i][j];ne[i-1][s[i]-'a']=i;}f[0][0]=1;for(int i=0;i<=n;i++)for(int j=0;j<=min(m,i);j++)for(int k=0;k<26;k++)if(ne[i][k])    f[ne[i][k]][j+1]=(f[ne[i][k]][j+1]+f[i][j])%mod;ll res=0;for(int i=m;i<=n;i++) res=(res+f[i][m])%mod;cout<<res<<'\n';}return 0;
}

D.斩杀线计算大师

根据扩展欧几里得算法很容易求出ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b),由于本题需要求ax+by+cz=kax+by+cz=kax+by+cz=k考虑枚举zzz,那么问题就转化为对于ax+by=k−czax+by=k-czax+by=kcz对于x,yx,yx,y是否有非负整数解。

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll exgcd(ll a,ll b,ll &x,ll &y)
{if(b==0){x=1,y=0;return a;}ll d=exgcd(b,a%b,y,x);y-=a/b*x;return d;
}
int main()
{IO;int T=1;//cin>>T;while(T--){ll a,b,c,k;cin>>a>>b>>c>>k;for(int z=0;z*c<=k;z++){ll x,y;ll d=exgcd(a,b,x,y);if((k-z*c)%d==0){ll gcd=b/d;x=((k-z*c)/d*x%gcd+gcd)%gcd;y=(k-z*c-x*a)/b;if(x>=0&&y>=0) {cout<<x<<' '<<y<<' '<<z<<'\n';break;}}}}return 0;
}

E.旗鼓相当的对手

感觉最近有的浮躁,找了几首轻音乐希望能够让我浮躁的心平静下来,而且最近学校破事贼多,人快无了。
要加油哦~

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

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

相关文章

.NET Core Agent

熟悉java的朋友肯定知道java agent&#xff0c;当我看到java agent时我很是羡慕&#xff0c;我当时就想.net是否也有类似的功能&#xff0c;于是就搜索各种资料&#xff0c;结果让人很失望。当时根据 https://github.com/OpenSkywalking/skywalking-netcore 找到这个 https://d…

【每日一题】8月14日题目精讲 [SCOI2010]游戏

来源&#xff1a;牛客网&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 lxhgww最近迷上了一款游戏&#xff0c;在游戏里&#xff0c;他拥有很多的装备&#x…

AT3957-[AGC023F]01 on Tree【贪心,堆】

正题 题目链接:https://www.luogu.com.cn/problem/AT3957 题目大意 nnn个节点的一棵树&#xff0c;每个节点有0/10/10/1。每次删除一个根节点&#xff0c;然后把该节点的值填入序列&#xff0c;求最终序列的最小逆序对数量。 n≤2105n\leq 2\times 10^5n≤2105 解题思路 考虑…

【状压DP】吃货JYY(luogu 6085)

正题 luogu 6085 题目大意 给你一个无向图&#xff0c;其中有一些边是必须走的&#xff0c;问你从1开始走&#xff0c;经过所有必须走的边&#xff0c;然后回到1的最短路径 解题思路 n很小&#xff0c;可以先用Floyd跑出两个点之间的最短路 然后状压DP&#xff0c;每个点存…

ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(二)

在上文中我介绍了ASP.NET Core应用程序容器化时需要注意的几个问题&#xff0c;并给出了一个案例应用程序&#xff1a;tasklist。今天接着上文的内容&#xff0c;继续了解一下如何使用Azure DevOps进行ASP.NET Core应用程序的持续集成。为了便于讨论&#xff0c;本文会将持续集…

Codeforces Round #672 (Div. 2)

A - Cubes Sorting 冒泡排序交换次数等于逆序对数&#xff0c;严格降序需要交换n(n−1)2\frac{n(n-1)}{2}2n(n−1)​次才能升序排列&#xff0c;由此只需要判断原数组是否严格降序即可。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize…

P6134-[JSOI2015]最小表示【bitset,拓扑排序】

正题 题目链接:https://www.luogu.com.cn/problem/P6134 题目大意 给出一张nnn个点mmm条边的DAGDAGDAG。求联通情况不变的情况下最多删除几条边。 1≤n≤3104,0≤M≤1051\leq n\leq 3\times 10^4,0\leq M\leq 10^51≤n≤3104,0≤M≤105 解题思路 拓扑排序后&#xff0c;如果…

【每日一题】8月17日题目精讲-[SCOI2009]生日礼物

来源&#xff1a;牛客网&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 小西有一条很长的彩带&#xff0c;彩带上挂着各式各样的彩珠。已知彩珠有N个&#xff…

纪中A组模拟赛总结(2021.7.21)

成绩 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3T4T4T4383838lyflyflyf393939363636000000333总结 T1发现数据很小可以直接暴力&#xff0c;就暴力求出所有方案数&#xff0c;然后堆排了一下 然后看到T2&#xff0c;发现不会 看着T3以为就是两种状态的最短…

Followme Devops step by step

接着上次分享的devops历程[Followme Devops实践之路], 大家希望能够出一个step by step手册, 那今天我就来和手把手来一起搭建这么一套环境, 演示整个过程!实验环境需要准备docker /docker compose建议大家使用国外的vps学习, 不需要考虑网络/gwf的问题/方便(本demo搭建在linod…

Codeforces Round #673 (Div. 2)——待补 E

由于开学了&#xff0c;一般晚上就不打cf了&#xff08;太晚了&#xff0c;寝室不太适合打&#xff09;&#xff0c;而且赛后也懒得vp&#xff0c;有时候会在图书馆口胡题目&#xff0c;然后回寝室补一补&#xff0c;不过我也写得太久了吧&#xff0c;很多细节疯狂wa A - Copy…

【每日一题】8月25日题目精讲 XOR-pyramid

文章目录题目描述&#xff1a;题解&#xff1a;代码&#xff1a;题目描述&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/problem/112798 来源&#xff1a;牛客网 输入描述: 输出描述: Print q lines — the answers for the queries. 示例1 输入 复制 3 8 4 1…

AT3611-Tree MST【点分治,最小生成树】

正题 题目链接:https://www.luogu.com.cn/problem/AT3611 题目大意 给出nnn个点的一棵树。 现在有一张完全图&#xff0c;两个点之间的边权为wxwydis(x,y)w_xw_ydis(x,y)wx​wy​dis(x,y)&#xff08;disdisdis表示树上距离&#xff09; 求这张完全图的最小生成树。 2≤n≤…

【LCT】大融合(luogu 4219)

正题 luogu 4219 题目大意 给你一棵树&#xff08;初始都无连边&#xff09;&#xff0c;让你进行以下操作&#xff1a; 1.连接两个点 2.查询一条边被多少条路径经过 解题思路 因为有边的修改&#xff0c;可以用LCT来维护这棵树 一条边的经过次数&#xff0c;就相当于连接…

申请Office 365一年免费的开发者账号攻略(2018年10月份版本)

要进行Office 365开发&#xff0c;当然需要有完整的Office 365环境才可以。为了便于广大开发人员快速地启动这项工作&#xff0c;微软官方给所有开发人员提供了免费的一年开发者账号那么如何申请Office 365一年免费的开发者账号呢&#xff1f;网上已经有一些攻略了&#xff0c;…

Codeforces Round #674 (Div. 3)

突如其来的div3&#xff0c;赛后打了一下。 A - Floor Number 数学题答案是1⌈n−2x⌉1\lceil \frac{n-2}{x} \rceil1⌈xn−2​⌉ #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<iostream> #include<algorithm&…

【每日一题】8月28日题目精讲 编号

【每日一题】8月28日题目精讲 编号 链接&#xff1a;https://ac.nowcoder.com/acm/problem/19925 来源&#xff1a;牛客网 题目描述 你需要给一批商品编号&#xff0c;其中每个编号都是一个7位16进制数&#xff08;由0~9, a-f组成&#xff09;。为了防止在人工处理时不小心把编…

P4321-随机漫游【状压dp,数学期望,高斯消元】

正题 题目链接:https://www.luogu.com.cn/problem/P4321 题目大意 给出nnn个点mmm条边的一张无向图&#xff0c;qqq次询问。 每次询问给出一个点集和一个起点&#xff0c;求从起点出发随机游走经过所有点集的期望步数。 n∈[1,18],m∈[1,n(n−1)2],q∈[1,105]n\in[1,18],m\i…

开源若要天下闻,掌声须给教育人

引子故事一当我们介绍 Linux Kernel 项目历史的时候&#xff0c;我们会如此说&#xff1a;“1991 年&#xff0c;赫尔辛基大学的大学生 Linus torvald, 在自己的电脑上开发了一个能够运行在 X86 架构上的操作系统&#xff0c;并将它发布在互联网上&#xff0c;任何人都可以参与…

纪中A组模拟赛总结(2021.7.22)

成绩 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3T4T4T4141414lyflyflyf101010000101010000000总结 T1明显状压&#xff0c;求方案感觉可以用容斥&#xff0c;但又发现假了&#xff0c;就跳过了 T2想找找有没有规律&#xff0c;就把表打了出来&#xff0c;但…