当前位置: 首页 > news >正文

2022浙江省赛G I M

G - Easy Glide

 题意

思路

由于数据范围比较小(1e3),把所有的移动的时间转化为图论上的边权就可以了,再用dijkstra解决,注意如果用的是邻接表存的话要建双向边

代码

#include <map>
#include <set>
#include <queue>
#include <deque>
#include <cmath>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
#define fi first
#define se second
#define u1 (u<<1)
#define u2 (u<<1|1)
#define pb push_back
#define pp pop_back()
#define int long long
#define laile cout<<"laile"<<endl
#define lowbit(x) ((x)&(-x))
#define double long double
#define sf(x) scanf("%lld",&x)
#define sff(x,y) scanf("%lld %lld",&x,&y)
#define sd(x) scanf("%Lf",&x)
#define sdd(x,y) scanf("%Lf %Lf",&x,&y)
#define _for(i,n) for(int i=0;i<(n);++i)
#define _rep(i,a,b) for(int i=(a);i<=(b);++i)
#define _pre(i,a,b) for(int i=(a);i>=(b);--i)
#define all(x) (x).begin(), (x).end()
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
typedef unsigned long long ULL;
typedef pair<int,int>PII;
typedef pair<double,double>PDD;
const int N=4e6+10,INF=4e18;
int n,m;
int e[N],ne[N],h[N],idx,v1,v2;
double w[N];
PII q[N];
double dist[N];
bool st[N];
void add(int a,int b,double c)
{e[idx]=b;ne[idx]=h[a];w[idx]=c;h[a]=idx++;
}
double getdist(PII a,PII b)
{return sqrt((a.fi-b.fi)*(a.fi-b.fi)+(a.se-b.se)*(a.se-b.se));
}
void addv(PII a,PII b,int i,int j)
{double dis=getdist(a,b);if(!j)add(j,i,dis/v1);else{if(v2*3>=dis)add(j,i,dis/v2);else add(j,i,3+(dis-v2*3)/v1);}
}
void dijkstra()
{priority_queue<pair<double,int>,vector<pair<double,int>>,greater<pair<double,int>>>que;_rep(i,0,n+1)dist[i]=INF;que.push({0,0});dist[0]=0;while(que.size()){auto t=que.top();que.pop();int u=t.se;if(st[u])continue;st[u]=true;for(int i=h[u];~i;i=ne[i]){int j=e[i];double k=w[i];
//			cout<<dist[]if(dist[j]>dist[u]+k){dist[j]=dist[u]+k;que.push({dist[j],j});}}}return ;
}
void solve()
{memset(h,-1,sizeof(h));
//	cin>>n;sf(n);_rep(i,1,n)sff(q[i].fi,q[i].se);
//		cin>>q[i].fi>>q[i].se;sff(q[0].fi,q[0].se);sff(q[n+1].fi,q[n+1].se);
//	cin>>q[0].fi>>q[0].se>>q[n+1].fi>>q[n+1].se;
//	cin>>v1>>v2;sff(v1,v2);_rep(i,0,n+1)_rep(j,0,i-1){addv(q[i],q[j],i,j);addv(q[j],q[i],j,i);}dijkstra();printf("%.10Lf",dist[n+1]);
//	cout<<dist[n+1]<<endl;return ;
}
signed main()
{
//	IOS;int T=1;
//    cin>>T;while(T--)solve();return 0;
}

I - Barbecue

题意

思路

如果此时查询的子字符串是回文,则Budada直接赢,否则这两个人一定会一直取取到最后一个,判断奇偶即可

可以发现abab...这种形式,删一次的话Putata直接输了,这里可以分类讨论一下

如果是偶数的ababab..这种形式的话Putata删一次就输了所以Putata就输了

假如是偶数但是不是ababab..这种形式的话,删到剩最后一个Putata还是输了

奇数没有特判所以删到最后一个Budada就输了

综上所述:如果此时查询的子字符串是回文,则Budada直接赢,否则偶数Budada赢,奇数Putata赢

代码

#include<bits/stdc++.h>
using namespace std;
#define sf(x) scanf("%lld",&x)
#define sff(x,y) scanf("%lld%lld",&x,&y)
#define endl '\n'
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define pf(x) printf("%lld",x)
#define pii pair<int,int> 
#define f first 
#define s second
#define int long long
typedef unsigned long long ull;
const int  N =1e6+10;
const int P = 133331;ull h[N][3],p[N];
string a,b;
int m,n;
void hx()
{p[0]=1;for(int i=1;i<=m;i++) {p[i]=p[i-1]*P;h[i][1] = h[i-1][1]*P+a[i];h[i][2] = h[i-1][2]*P+b[i];        }
}ull get(int l,int r)
{return h[r][1]-h[l-1][1]*p[r-l+1];
}
ull fget(int l,int r)
{return h[r][2]-h[l-1][2]*p[r-l+1];
}
//
//
//void solve()
{cin>>m>>n;cin>>b;a=b;reverse(b.begin(),b.end());a=" "+a;b=" "+b;hx();while(n--){int l,r;cin>>l>>r;int ll=m-r+1,rr=m-l+1;if(get(l,r)==fget(ll,rr)) cout<<"Budada"<<endl;else {if((r-l)%2)cout<<"Budada"<<endl;else cout<<"Putata"<<endl;}}}
signed main()
{IOS;int _=1;while(_--)solve();return 0;
}

M - BpbBppbpBB

题意

在1000x1000的图中找'8' 'b''p'形状的数量(大小必须相同)

思路

把所有第一次遇到'.'的位置BFS一遍,然后暴力判断这个'.'所在的连通块是否是满足条件的洞如下:

满足的话就把这个连通块左上角(也就是BFS初始进来的点)坐标加入到待选的数组里

由于一个'8'或者'b''p'尺寸为10*17,那么洞的数量最多1000/10*1000/17=5800个,可以两重循环判断洞与洞的关系

最后加入两个洞所在坐标的哈密顿距离=7就说明这两个洞对应一个8,剩余不满足这个条件的洞对应'b''p'即可

代码

#include <map>
#include <set>
#include <queue>
#include <deque>
#include <cmath>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
#define fi first
#define se second
#define u1 (u<<1)
#define u2 (u<<1|1)
#define pb push_back
#define pp pop_back()
#define int long long
#define laile cout<<"laile"<<endl
#define lowbit(x) ((x)&(-x))
#define double long double
#define sf(x) scanf("%lld",&x)
#define sff(x,y) scanf("%lld %lld",&x,&y)
#define sd(x) scanf("%Lf",&x)
#define sdd(x,y) scanf("%Lf %Lf",&x,&y)
#define _for(i,n) for(int i=0;i<(n);++i)
#define _rep(i,a,b) for(int i=(a);i<=(b);++i)
#define _pre(i,a,b) for(int i=(a);i>=(b);--i)
#define all(x) (x).begin(), (x).end()
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
typedef unsigned long long ULL;
typedef pair<int,int>PII;
typedef pair<double,double>PDD;
const int N=1e3+10,INF=4e18;
int n,m,cnt;
char g[N][N];
int now[N][N];
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
bool bfs(int a,int b,int cnt)
{queue<PII>q;now[a][b]=cnt;q.push({a,b});int res=1;while(q.size()){auto t=q.front();q.pop();int xx=t.fi,yy=t.se;_rep(i,0,3){int x=xx+dx[i],y=yy+dy[i];if(x<1||x>n||y<1||y>m||g[x][y]=='#'||now[x][y])continue;now[x][y]=cnt;res++;q.push({x,y});}}if(a+3<=n&&b+2<=m&&b-1>=1&&res==12){vector<PII>v;v.pb({a,b});v.pb({a,b+1});v.pb({a+1,b-1});v.pb({a+1,b});v.pb({a+1,b+1});v.pb({a+1,b+2});v.pb({a+2,b-1});v.pb({a+2,b});v.pb({a+2,b+1});v.pb({a+2,b+2});v.pb({a+3,b});v.pb({a+3,b+1});for(auto i:v)if(now[i.fi][i.se]!=cnt)return false;}else return false;return true;
}
int getdist(PII a,PII b)
{return abs(a.fi-b.fi)+abs(a.se-b.se);
}
void solve()
{vector<PII>v;cin>>n>>m;_rep(i,1,n)_rep(j,1,m)cin>>g[i][j];_rep(i,1,n)_rep(j,1,m)if(g[i][j]=='.'&&!now[i][j])if(bfs(i,j,++cnt))v.pb({i,j});int ba=0;_rep(i,0,(int)v.size()-1)_rep(j,0,i-1)if(getdist(v[i],v[j])==7)ba++;cout<<ba<<" "<<(int)v.size()-ba*2;return;
}
signed main()
{IOS;int T=1;
//    cin>>T;while(T--)solve();return 0;
}

相关文章:

2022浙江省赛G I M

G - Easy Glide 题意 思路 由于数据范围比较小&#xff08;1e3&#xff09;,把所有的移动的时间转化为图论上的边权就可以了,再用dijkstra解决,注意如果用的是邻接表存的话要建双向边 代码 #include <map> #include <set> #include <queue> #include <…...

数据链路层 ——MAC

目录 MAC帧协议 mac地址 以太网帧格式 ARP协议 ARP报文格式​编辑 RARP 其他的网络服务或者协议 DNS ICMP协议 ping traceroute NAT技术 代理服务器 网络层负责规划转发路线&#xff0c;而链路层负责在网络节点之间的转发&#xff0c;也就是"一跳"的具体传输…...

在java中都是如何实现这些锁的?或者说都有哪些具体的结构实现

在Java中&#xff0c;多种锁机制的实现依赖于不同的类和接口。以下是一些常见的锁机制及其在Java中的具体实现&#xff1a; 1. 互斥锁&#xff08;Mutex&#xff09; 实现方式&#xff1a;Java中的互斥锁可以通过synchronized关键字或ReentrantLock类来实现。synchronized关键…...

用CSS创造三角形案例

6.3.2 用CSS创造三角形 用div来创建&#xff0c;角上是平分的&#xff0c;所以要是内部宽高为0&#xff0c;其他边透明&#xff0c;正好是三角形。 代码 div {border: 12px solid;width: 0;height: 0;border-color: transparent red transparent transparent; } 与伪元素aft…...

matlab-对比两张图片的Ycbcr分量的差值并形成直方图

%对比两张图片的Ycbcr分量的差值并形成直方图&#xff0c;改个路径就能用&#xff0c;图片分辨率要一致 close all; clear all; clc; I1imread(E:\test\resources\image\1.jpg); I2imread(E:\test\resources\image\2.jpg); ycbcr1 rgb2ycbcr(I1); ycbcr2 rgb2ycbcr(I2); % …...

Chromium 使用安全 DNS功能源码分析c++

一、选项页安全dns选项如下图&#xff1a; 二、那么如何自定义安全dns功能呢&#xff1f; 1、先看前端部分代码调用 shared.rollup.jsclass PrivacyPageBrowserProxyImpl {.................................................................getSecureDnsResolverList() {re…...

10.1 刷题

C语言 C...

车辆重识别(2021ICML改进的去噪扩散概率模型)论文阅读2024/9/29

所谓改进的去噪扩散概率模型主要改进在哪些方面&#xff1a; ①对数似然值的改进 通过对噪声的那个方差和T进行调参&#xff0c;来实现改进。 ②学习 这个参数也就是后验概率的方差。通过数据分析&#xff0c;发现在T非常大的情况下对样本质量几乎没有影响&#xff0c;也就是说…...

828华为云征文|针对Flexus X实例云服务器的CPU和内存性能测评

目录 一、Flexus X实例云服务器简介 1.1 产品摘要 1.2 产品优势 1.3 本次测评服务器规格 二、CPU性能测试 2.1 操作说明 2.2 操作步骤 2.2 结果分析 三、测试内存负载 3.1 操作说明 3.2 操作步骤 3.3 结果分析 四、测试终评 一、Flexus X实例云服务器简介 1.1 产品…...

Python知识点:如何使用Google Cloud IoT与Python进行边缘计算

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用Google Cloud IoT与Python进行边缘计算 边缘计算作为一种新兴的计算模式…...

力扣 最小覆盖子串

最小覆盖子串 https://leetcode.cn/problems/minimum-window-substring/ 题目描述 题目分析f 覆盖子串&#xff1a;首先根据题意&#xff0c;要求目标字符串的元素必须都在子串中出现过&#xff0c;这表明可以是乱序出现。所以在解决问题是我们需要对子串和目标字符串做匹配&a…...

python的内存管理机制

python的内存管理机制主要分为三个部分&#xff1a;引用计数、垃圾回收和内存池机制。 引用计数机制&#xff1a; python通过维护每个对象的引用计数来跟踪内存中的对象。当对象被创建时就会有一个引用计数&#xff0c;当对象不再被使用时&#xff0c;引用计数为0&#xff0c…...

阿布量化:基于 Python 的量化交易框架

阿布量化&#xff08;AbuQuant&#xff09; 是一个开源的量化交易框架&#xff0c;专为金融领域的研究者和交易者设计。它基于 Python 语言开发&#xff0c;提供了一整套从数据获取、策略开发、回测分析到交易执行的解决方案。阿布量化不仅能够帮助用户快速实现量化策略的设计与…...

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-28

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-28 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-28目录前言1. Cognitive phantoms in LLMs through the lens of latent variables摘要研究背景问题与挑战创新点算法模型实验效果…...

【tower-boot 系列】开源RocketMQ和阿里云rockerMq 4.x和5.x集成 (一)

RocketMQ 简单介绍 阿里云rockerMq 4.x和5.x集成 一、云平台创建实例 参考文档&#xff1a; 阿里云api 阿里云 创建实例 二、skd集成思路 公司用的RocketMQ一般是自建开源apache的RocketMQ和上阿里云的RocketMQ&#xff0c;目前阿里云支持4.x和5.x版本 项目集成思路&…...

Pikachu-Cross-Site Scripting-反射型xss(post)

查看源代码 &#xff0c;这是需要先登录&#xff0c;然后再去做xss攻击 使用admin &#xff0c;123456 登陆; 登陆后&#xff0c;输入的message 内容直接返回 输入 <script>alert(1)</script> 得到xss攻击结果...

Vue3 工具函数(总结)

目录 前言 1.isRef 2.isReactive 3.isReadonly 4.isProxy 5.toRef 6.toRefs 7.unref 8.shallowRef 9.shallowReactive 10.triggerRef 11.customRef 12.markRaw 13.toRaw 14.readonly 15.watchEffect 前言 在 Vue 3 中&#xff0c;除了核心的响应式 API&#x…...

(undone) MIT6.824 Lab1

参考&#xff1a;http://nil.csail.mit.edu/6.824/2021/labs/lab-mr.html task1: 熟悉讲义&#xff0c;尤其是搞明白如何运行测试程序(完成) ------------------------------------------------ start 先看 Introduction 我们的目标&#xff1a;构建一个MapReduce系统。 细节&…...

SpringMVC——REST

路径请求方式请求行为 查询&#xff1a;GET 新增&#xff1a;POST 修改&#xff1a;PUT 删除&#xff1a;DELETE 有重复的东西怎么办...

【牛客网刷题记录】【java】二叉树

&#xff08;1&#xff09;二叉树的前中后遍历 最基本的树的遍历&#xff0c;不会可以重开了 public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param root TreeNode类 * return int整型一维…...

Nanbeige 4.1-3B赋能微信小程序:打造智能客服对话机器人

Nanbeige 4.1-3B赋能微信小程序&#xff1a;打造智能客服对话机器人 最近在帮一个做电商的朋友琢磨怎么优化他们的客服系统。他们每天要处理大量重复的咨询&#xff0c;比如“什么时候发货”、“怎么退换货”&#xff0c;人工客服忙得团团转&#xff0c;用户还得排队等。这让我…...

COMSOL数值模拟:N2和CO2混合气体在THM热流固三场耦合下增强瓦斯抽采

COMSOL数值模拟&#xff0c;实现N2和CO2混合气体在THM热流固三场耦合情况下增强瓦斯&#xff08;煤层气抽采&#xff09;煤层气抽采效率提升这事儿&#xff0c;最近在实验室搞了个骚操作——往煤层里怼氮气和二氧化碳的混合气。说人话就是拿这俩气体当开塞露&#xff0c;把卡在…...

解密数字图像处理中的m邻接:从理论到实战的连通性优化

1. 为什么我们需要m邻接&#xff1f; 第一次接触数字图像处理时&#xff0c;你可能和我一样被各种邻接关系绕晕。记得当时处理一个简单的二值图像&#xff0c;用8邻接做连通区域分析&#xff0c;结果两个明明分开的方块被错误地连在了一起。这就是典型的"歧义路径"问…...

如何利用Blender MMD Tools实现跨平台3D模型与动画工作流

如何利用Blender MMD Tools实现跨平台3D模型与动画工作流 【免费下载链接】blender_mmd_tools MMD Tools is a blender addon for importing/exporting Models and Motions of MikuMikuDance. 项目地址: https://gitcode.com/gh_mirrors/bl/blender_mmd_tools 副标题&am…...

20个网站备份泄漏漏洞挖掘技巧!

20个网站备份泄漏漏洞挖掘技巧&#xff01; 网站备份文件泄露&#xff0c;绝不是小问题。在网络安全攻防实战中&#xff0c;备份文件泄露一直被列为“高风险漏洞”&#xff0c;却往往被企业开发者所忽视。一次偶然的备份文件泄露&#xff0c;可能成为整个系统沦陷的起点。本文…...

技术突破:抖音下载工具的全流程实战指南

技术突破&#xff1a;抖音下载工具的全流程实战指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容爆炸的时代&#xff0c;高效获取和管理短视频资源已成为创作者、研究者和普通用户的核心需求。…...

SpeedyStepper Forked:嵌入式步进电机硬实时控制库解析

1. SpeedyStepper Forked&#xff1a;面向嵌入式实时控制的高性能步进电机驱动库深度解析1.1 库定位与工程价值SpeedyStepper Forked 是一个专为嵌入式平台&#xff08;尤其是基于Arduino生态的MCU&#xff09;设计的轻量级、高精度步进电机运动控制库。其核心目标并非提供图形…...

基于PLC的智能饲喂系统设计:开启现代养殖自动化新篇章

基于PLC的智能饲喂系统设计 本设计包括设计报告&#xff0c;任务书&#xff0c;模拟工程仿真。本设计的制作智能饲喂是现代物流系统的重要组成部分&#xff0c;是代替人工饲喂的可行性计划&#xff0c;由自动控制与管理系统、配料系统、送料系统、自动统计系统、触摸屏监控系统…...

PostgreSQL 冻结(Freeze)机制深度解析

PostgreSQL 冻结&#xff08;Freeze&#xff09;机制深度解析一、为什么需要冻结 1.1 事务 ID 的本质 PostgreSQL 用 32 位无符号整数表示事务 ID&#xff08;XID&#xff09;&#xff0c;范围 0 ~ 2^32-1&#xff08;约 42 亿&#xff09;。 其中有三个特殊 XID&#xff1a;XI…...

一文搞懂训练大模型的数据怎么准备!

谈到大模型&#xff0c;很多人第一反应都是模型参数大、算力强&#xff0c;但其实数据才是大模型真正的底座。没有足够大、足够干净的数据&#xff0c;再先进的模型也发挥不出威力。今天就从数据层面&#xff0c;把大模型训练的几个关键环节梳理清楚。 数据采集与清洗 大模型训…...