携程笔试 2025.3.13

devtools/2025/3/14 18:09:17/

1.诗

第一行1个字,之后每行字数增加1,输出每行第一列字符。

#include <bits/stdc++.h>
using namespace std;
string s,ans;
int main() {int d,idx;cin>>s;idx=1;d=idx;for(int i=0;i<s.size();i++) {while(d) {if(d==idx) {ans+=s[i];}d--;i++;}idx++;d=idx;i--;}cout<<ans;return 0;
}

2.数组染色

数组排序,当前值+数组长度,然后去掉相同值完后循环。

#include <bits/stdc++.h>
using namespace std;
int T,n;
long long ans;
int main() {cin>>T;while(T--) {cin>>n;vector<int> v(n),s(n+1);for(int i=0;i<n;i++) cin>>v[i];sort(v.begin(),v.end());ans=0;for(int i=0;i<n;i++) {int t=v[i],j=i;while(j<n && v[i]==v[j]) j++;if(t+n-i>ans) ans=t+n-i;  i=j-1;}cout<<ans<<endl;}return 0;
}

3.数组询问

求出每个数的所有的质因数然后前缀和,计算缺少长度为k的子数组最大值

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int n,k,x;
long long a[N],s[N],ans;
bool is_prime(int x) {if(x==1) return 0;if(x==2) return 1;for(int i=2;i<=x/i;i++) {if(x%i==0) return 0;}return 1;
}
int calc(int x){int cnt=0;if(x==1) return cnt;for(int i=1;i<=x/i;i++) {if(x%i==0) {if(is_prime(i)) cnt++;if(x/i!=i) {if(is_prime(x/i)) cnt++;}}}return cnt;
}
int main() {cin>>n>>k;for(int i=0;i<n;i++) {cin>>x;a[i]=calc(x);}for(int i=1;i<=n;i++) {s[i]=s[i-1]+a[i-1];}for(int i=k;i<=n;i++) {int t=s[i]-s[i-k];ans=max(ans,s[n]-t);}cout<<ans;return 0;
}

4.偶数路径

通过52.3%,用一个集合记录当前所包含的所有点,如果这些点的gcd为偶数就答案增加1,同时用一个大集合S把所有这个合法集合加入到里面。

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int gcd(int a,int b) {return b?gcd(b,a%b):a;
}
int n,a[N],ans;
int h[N],e[2*N],ne[2*N],idx;
bool st[N];
set<set<int> > S;
void dfs(int u,int fa,int curgcd,set<int>& se) {if(curgcd%2==0 && !S.count(se)) {ans++;S.insert(se);// for(auto x:se) cout<<x<<" ";// puts("");}for(int i=h[u];~i;i=ne[i]) {int j=e[i];if(j!=fa) {int tt=gcd(curgcd,a[j]);if(tt%2) continue;auto ST=se;ST.insert(j);dfs(j,u,tt,ST);}}
}
void add(int a,int b) {e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int main() {memset(h,-1,sizeof(h));cin>>n;for(int i=1;i<=n;i++) {cin>>a[i];}int aa,b;for(int i=0;i<n-1;i++) {cin>>aa>>b;add(aa,b);add(b,aa);}for(int i=1;i<=n;i++) {set<int> se;se.insert(i);dfs(i,-1,a[i],se);}cout<<ans;return 0;
}

http://www.ppmy.cn/devtools/167079.html

相关文章

图论part3|101.孤岛的总面积、沉没孤岛、417. 太平洋大西洋水流问题

101. 孤岛的总面积 &#x1f517;&#xff1a;101. 孤岛的总面积思路&#xff1a;和昨天的岛的区别是&#xff1a;是否有挨着边的岛屿 所以可以先遍历四条边挨着的岛屿&#xff0c;把他们标记为非孤岛再计算其他岛屿当中的最大面积 代码&#xff1a;&#xff08;深度搜索&…

内网渗透之内网基础知识(一)

工作组 工作组:工作组是局域网中的一个概念&#xff0c;他是长久的资源管理模式。默认情况下使 用工作组方式进行资源管理&#xff0c;将不同的 computer 按照不同的要求分类到不同的组 域:用来描述一种架构&#xff0c;和“工作组”相对应&#xff0c;由工作组升级而来的高级…

用Deepseek写一个五子棋微信小程序

在当今快节奏的生活中&#xff0c;休闲小游戏成为了许多人放松心情的好选择。五子棋作为一款经典的策略游戏&#xff0c;不仅规则简单&#xff0c;还能锻炼思维。最近&#xff0c;我借助 DeepSeek 的帮助&#xff0c;开发了一款五子棋微信小程序。在这篇文章中&#xff0c;我将…

投资早报 3.13

一、 市场概述 1.全网加密货币总市值为2.80万亿美元&#xff0c;24小时交易量为1229.116亿美元。比特币(BTC)市值占比为59.3%&#xff0c;以太坊市值占比为8.21%。 2.美股三大指数涨跌不一&#xff0c;其中标普500指数涨0.49%&#xff0c;报5599.30点&#xff1b;道琼斯指数跌…

vscode调试python量化项目经验

第一步&#xff1a;安装插件&#xff0c;如下图&#xff0c;这款几款vscode插件都装上&#xff1a; 第二步&#xff1a;新建文件如上图所示&#xff0c;在项目根目录下新建.vscode文件夹&#xff0c;该文件夹下新建launch.json文件 launch.json里的配置代码如下&#xff1a; {…

ubuntu20 安装、配置Gitlab

1. 安装依赖 sudo apt update sudo apt install ca-certificates curl openssh-server postfix 对于postfix的安装&#xff0c;请在出现提示时选择“ Internet站点”&#xff0c;其余选项按默认值即可。 2. 下载安装gitlab 下载 sudo apt-get install wget wget -P /Downlo…

【Academy】服务器端模板注入 ------ Server-side template injection

服务器端模板注入 ------ Server-side template injection 1. 什么是服务器端模板注入&#xff1f;2. 服务器端模板注入有什么影响&#xff1f;3. 服务器端模板注入漏洞是如何产生的&#xff1f;4. 构建服务器端模板注入4.1 检测4.1.1 纯文本上下文4.1.2 代码上下文 4.2 识别4.…

Matplotlib

Matplotlib 使用前需要先导入模块 import matplotlib.pyplot as plt import numpy as np绘制x点和y点 plot()函数用于在图表中绘制点&#xff08;标记&#xff09; 默认情况下&#xff0c;会从点到点之间绘制一条直线 参数1是一个包含x轴上点的数组 参数2是一个包含y轴上点的…