团队练习记录2024.10.23

news/2024/10/24 15:57:03/文章来源:https://www.cnblogs.com/cjcf/p/18499736

比赛链接:https://codeforces.com/gym/104976

D.Operator Precedence


队友解的,想办法让第二个式子中括号内数值为1,所以就2,-1交替,最后一个选1可逆推,第一个为2*n-3

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define lowbit(x) (x & -x)
using namespace std;
mt19937 rnd(time(0));
//const ll p=rnd()%mod;
typedef long long ll;
const ll mod=1e9+7;
const ll N=2e5+5;
ll ksm(ll x,ll y)
{ll ans=1;while(y){if(y&1)ans=(ans%mod*x%mod)%mod;x=x%mod*(x%mod)%mod;y>>=1;}return ans%mod%mod;
}
ll gcd(ll x,ll y)
{if(y==0)return x;else return gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
ll query(ll l,ll r)
{cout<<"?"<<" "<<l<<" "<<r<<endl;cout.flush();ll x;cin>>x;return x;
}
ll a[2500000];
int main()
{fio();ll t;cin>>t;while(t--){ll n;cin>>n;cout<<2*n-3<<" ";for(ll i=2;i<=2*n-1;i++){if(i%2==0)cout<<2<<" ";else cout<<-1<<" ";}cout<<1<<endl;}
}

G.Snake Move


模2的64次方,其实意味着你得开unsigned long long统计最后答案,
对于bfs,如果你到了某个点无非就是这个时候的距离,或者等待蛇身离开

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define lowbit(x) (x & -x)
using namespace std;
//mt19937 rnd(time(0));
typedef long long  ll;
const ll mod=1e9+7;
const ll N=2e5+5;
ll ksm(ll x,ll y)
{ll ans=1;while(y){if(y&1)ans=(ans%mod*x%mod)%mod;x=x%mod*(x%mod)%mod;y>>=1;}return ans%mod%mod;
}
ll gcd(ll x,ll y)
{if(y==0)return x;else return gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
bool vis[4000][4000];
ll vi[4000][4000];
ll dis[4000][4000];
ll a[4]={0,1,0,-1};
ll b[4]={1,0,-1,0};
ll gs=0;ll n,m,k;
void bfs(ll x,ll y)
{priority_queue<pair<ll,pair<ll,ll>>,vector<pair<ll,pair<ll,ll>>>,greater<pair<ll,pair<ll,ll>>>>q;q.push({0,{x,y}});dis[x][y]=0;while(!q.empty()){ll x=q.top().second.first;ll y=q.top().second.second;ll Dis=q.top().first;q.pop();ll u;vis[x][y]=1;for(ll i=0;i<=3;i++){ll nx=x+a[i];ll ny=y+b[i];if(nx<1||nx>n||ny<1||ny>m||vis[nx][ny]){continue;}else {if(vi[nx][ny]){u=max(dis[x][y]+1,vi[nx][ny]+1);}else u=dis[x][y]+1;dis[nx][ny]=u;q.push({dis[nx][ny],{nx,ny}});vis[nx][ny]=1;}}	}
}
int main()//附着花费
{fio();cin>>n>>m>>k;ll s1=0,s2=0;for(ll i=1;i<=k;i++){ll x,y;cin>>x>>y;if(s1==0){s1=x,s2=y;}if(i>=2){vi[x][y]=k-i;}}for(ll i=1;i<=n;i++){for(ll j=1;j<=m;j++)dis[i][j]=99999999999;}for(ll i=1;i<=n;i++){for(ll j=1;j<=m;j++){char g;cin>>g;if(g=='#')vis[i][j]=1;}}//cout<<s1<<" "<<s2<<endl;bfs(s1,s2);unsigned long long  ans=0;for(ll i=1;i<=n;i++){for(ll j=1;j<=m;j++){if(dis[i][j]==99999999999){continue;}//cout<<i<<" "<<j<<" "<<dis[i][j]<<endl;ans+=dis[i][j]*dis[i][j];}}cout<<ans<<endl;
}

H. Sugar Sweet II


队友推得概率和深度有关,然后就是先把非环特判,然后有环都认为糖果为基础糖果即可

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define lowbit(x) (x & -x)
using namespace std;
mt19937 rnd(time(0));
typedef long long ll;
const ll mod=1e9+7;
const ll N=2e5+5;
ll ksm(ll x,ll y)
{ll ans=1;while(y){if(y&1)ans=(ans%mod*x%mod)%mod;x=x%mod*(x%mod)%mod;y>>=1;}return ans%mod%mod;
}
ll p1=ksm(2,mod-2);
ll gcd(ll x,ll y)
{if(y==0)return x;else return gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
ll query(ll l,ll r)
{cout<<"?"<<" "<<l<<" "<<r<<endl;cout.flush();ll x;cin>>x;return x;
}
struct s
{ll x,y,w;
}p[550000];
struct f
{ll x,y,w;
};
vector<ll>g[555000];
bool vi[550000];
ll ans[552000];
ll in[550000];
ll op[555000];
ll cs=0;
ll ou[550000];
void bfs(ll x,ll sd,ll cd)
{queue<f>q;q.push({x,sd,cd});//cout<<x<<endl;while(!q.empty()){ll x=q.front().x;ll sd=q.front().y;ll cd=q.front().w;for(auto j:g[x]){in[j]--;if(in[j]==0){q.push({j,sd+1,(cd%mod*ksm(sd+1,mod-2)%mod)%mod});ll cg=(cd%mod*ksm(sd+1,mod-2)%mod)%mod;ans[j]=cg*((p[j].x+p[j].w)%mod)%mod;ans[j]+=((1-cg%mod+1000*mod)%mod*(p[j].x)%mod)%mod;ans[j]%=mod;}}q.pop();}
}
int main()
{fio();ll t;cin>>t;while(t--){ll n;cin>>n;for(ll i=1;i<=n;i++)cin>>p[i].x,g[i].clear();for(ll i=1;i<=n;i++)cin>>p[i].y,vi[i]=0,in[i]=0,ou[i]=0;for(ll i=1;i<=n;i++)cin>>p[i].w,op[i]=0;set<ll>q;for(ll i=1;i<=n;i++){if(p[i].y==i){op[i]=0;ans[i]=p[i].x;}else if(p[p[i].y].x>p[i].x){op[i]=1;ans[i]=p[i].x+p[i].w;ans[i]%=mod;q.insert(i);//cout<<i<<endl;}else if(p[p[i].y].x+p[p[i].y].w<=p[i].x){op[i]=0;ans[i]=p[i].x;ans[i]%=mod;q.insert(i);}else g[p[i].y].push_back(i),in[i]++;}//cout<<ans[2]<<" "<<ans[4]<<endl;for(auto j:q){bfs(j,1,op[j]);vi[j]=1;}for(ll i=1;i<=n;i++){if(in[i]>0)cout<<p[i].x%mod<<" ";else cout<<ans[i]%mod<<" ";}cout<<endl;}
}

J. Mysterious Tree


注意题目给的是树,然后二二配对问就好了

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define lowbit(x) (x & -x)
using namespace std;
mt19937 rnd(time(0));
//const ll p=rnd()%mod;
typedef long long ll;
const ll mod=1e9+7;
const ll N=2e5+5;
ll ksm(ll x,ll y)
{ll ans=1;while(y){if(y&1)ans=(ans%mod*x%mod)%mod;x=x%mod*(x%mod)%mod;y>>=1;}return ans%mod%mod;
}
ll gcd(ll x,ll y)
{if(y==0)return x;else return gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
ll query(ll l,ll r)
{cout<<"?"<<" "<<l<<" "<<r<<endl;cout.flush();ll x;cin>>x;return x;
}
ll a[2500000];
int main()
{fio();ll t;cin>>t;while(t--){ll n;cin>>n;for(ll i=1;i<=n;i++)a[i]=0;if(n%2==0){for(ll i=1;i<=n/2;i++){a[i]=query(i,i+n/2);}ll ans=0;ll wz;for(ll i=1;i<=n/2;i++){ans+=a[i];if(a[i]==1)wz=i;}if(ans==0||ans>=2)//必须为1,如果为星{cout<<"!"<<" "<<1<<endl;}else {ll pd;if(wz==1)pd=2;else pd=1;ll cnt=query(wz,pd);if(cnt==1){if(query(wz,pd+n/2)==1){cout<<"!"<<" "<<2<<endl;}else cout<<"!"<<" "<<1<<endl;}else {if(query(wz+n/2,pd)==1&&query(wz+n/2,pd+n/2)==1){cout<<"!"<<" "<<2<<endl;}else  cout<<"!"<<" "<<1<<endl;}}}else{ll sum=0;ll wz;for(ll i=1;i<=n/2;i++){a[i]=query(i,i+n/2);//1 3 2 4sum+=a[i];if(a[i]==1)wz=i;}if(sum>=2){cout<<"!"<<" "<<1<<endl;}else if(sum==1){ll pd;if(wz==1)pd=2;else pd=1;if(query(wz,n)==1){if(query(wz,pd)==1){cout<<"!"<<" "<<2<<endl;}else {cout<<"!"<<" "<<1<<endl;}}else{if(query(wz+n/2,n)==0){cout<<"!"<<" "<<1<<endl;}else {if(query(wz+n/2,pd)==1){cout<<"!"<<" "<<2<<endl;}else {cout<<"!"<<" "<<1<<endl;}}}}else {if(query(1,n)==1&&query(2,n)==1&&query(3,n)==1){cout<<"!"<<" "<<2<<endl;}else cout<<"!"<<" "<<1<<endl;}}}
}

M. V-Diagram


最大值就是V+单边或者双边

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define lowbit(x) (x & -x)
using namespace std;
mt19937 rnd(time(0));
//const ll p=rnd()%mod;
typedef long long ll;
const ll mod=1e9+7;
const ll N=2e5+5;
ll ksm(ll x,ll y)
{ll ans=1;while(y){if(y&1)ans=(ans%mod*x%mod)%mod;x=x%mod*(x%mod)%mod;y>>=1;}return ans%mod%mod;
}
ll gcd(ll x,ll y)
{if(y==0)return x;else return gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
ll a[450000];
int main()
{
//fio();
ll t;
cin>>t;
while(t--)
{
ll n;
scanf("%lld",&n);
for(ll i=1;i<=n;i++)
{scanf("%lld",&a[i]);
}
ll wz=0;
for(ll i=2;i<=n-1;i++)
{if(a[i-1]>a[i]&&a[i]<a[i+1]){wz=i;break;}
}
double ans=0;
ll cnt=0;
for(ll i=1;i<=wz;i++)
{cnt+=a[i];
}
for(ll i=wz+1;i<=n;i++)
{//double k=cnt+=a[i];ans=max(ans,(double)cnt/i);
}
cnt=0;
for(ll i=wz;i<=n;i++)
{cnt+=a[i];
}
//cout<<wz<<endl;
for(ll i=wz-1;i>=1;i--)
{cnt+=a[i];ans=max(ans,(double)cnt/(n-wz+1+(wz-i)));
}
printf("%.20lf\n",ans);
}
}

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

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

相关文章

debian libc.musl-x86_64.so.1 = not found

apt-get install musl-devln -s /usr/lib/x86_64-linux-musl/libc.so /lib/libc.musl-x86_64.so.1

MySQL 复习(一):建表约束

MySQL 复习(一):建表约束@目录MySQL 复习(一):建表约束1. 主键约束1.1 添加主键约束1.1.1 建表前添加主键约束1.1.2 建表后添加主键约束1.2 删除主键约束2. 外键约束2.1 添加外键约束2.1.1 建表前添加外键约束2.1.2 建表后添加外键约束2.2 删除外键约束3. 自增约束…

[模板引擎/文本渲染引擎] Jinjia2重要特性的使用指南

1 使用指南 CASE 为变量设置默认值private final static Jinjava JINJAVA = new Jinjava();/** 为变量设置默认值 | 共计 3 种方法 **/@Testpublic void defaultValueTest(){//{{ variable|default(default_value) }}// my_dict是一个字典,其中只有一个键值对。在模板中访问 …

Docker常用命令记录(随时更新)

docker 使用命令记录Docker 常用命令 镜像操作保存镜像为tar包 docker save -o <文件名>.tar <镜像名>:<版本号>例如: docker save -o myimage.tar myimage:latest从tar包加载镜像 docker load -i <文件名>.tar例如: docker load -i myimage.tar查看…

强化学习的数学原理-03贝尔曼最优公式

目录最优策略和公式推导右侧最优化问题公式求解以及最优性Contraction mapping theorem(压缩映射定理)解决贝尔曼最优公式分析最优策略(analyzing optimal policies)Summary 最优策略和公式推导 首先定义一个策略比另一个策略好: \[v_{\pi_{1}}(s) \ge v_{\pi_{2}}(s) \quad…

css3实现文字线性渐变,css3实现背景渐变

<div class=who1>我是线性渐变文字我是线性渐变文字我是线性渐变文字我</div> <div class=who2>我是背景渐变我是背景渐变我是背景渐变我是背景渐变我</div>.who1{width:400px; background: linear-gradient(to right, #ff0000, #ffff00); /*设置渐…

吉客云数据集成到金蝶云星空:盘盈入库单对接方案

吉客云数据集成到金蝶云星空:盘盈入库单对接方案 在企业资源管理中,数据的准确性和实时性至关重要。本文将分享一个具体的系统对接集成案例,即如何将吉客云中的盘盈入库单数据高效、可靠地集成到金蝶云星空中,形成盘盈单。 为了实现这一目标,我们采用了数据集成平台,通过…

Linux 中 awk命令整列的替换

001、测试数据[root@localhost test2]# ls a.txt [root@localhost test2]# cat a.txt 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 …

ElevenLabs Voice Design :可通过文本创建个性化语音;苹果推出首个开发者测试版丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

nginx总结

使用auth_basic控制访问nginx代理的网站,直接访问如果需要添加安全性,如需要输入用户名+密码才能访问页面,可以通过nginx的auth_baisc配置来实现检查htpasswd 一般nginx的安装之后会自带或者nginx容器镜像自带 root@ea6255db9f51:/config/nginx/site-confs# htpasswd Usage:…

1024程序员节Fast Request发福利啦

今天是 1024 程序员节,祝各位老铁程序员节快乐!愿大家安全上线,永无 bug,代码行行如丝滑。 首先,特别感谢大家一直以来对 Fast Request 的支持与厚爱。在这个属于程序员的节日里,我们准备了一波诚意满满的福利,送给每一位辛勤付出的你! 以下福利是我们对大家辛勤付出的…

浪潮服务器开机不进系统

浪潮服务器开机无法进入系统的问题,可能由多种因素导致。以下是一些常见的原因及其相应的解决方法: 一、电源故障 问题描述:电源故障可能导致服务器无法正常启动。 解决方法: 检查电源插头和电源线是否松动或损坏。 确保电源供应正常,尝试更换电源线或连接到其他插座进行测…