牛客多校6

linux 4.19在龙芯平台上编译出错解决方法 OS: Loongnix server 1.7 工具链为:系统自带的gcc-4.8.5 和 gcc-7.3 平台:3A3000/3A4000 源码:kernel: 4.19 编译步骤 ··· make loongson3_defconfig make -j4 ··· 出错信息: HOSTCC arch/mips/boot/compressed/calc_vmlinuz_load_addr arch/mips/boot/compressed/head.S: Assembler messages: arch/m 阅读详情

Intervals on the Ring

请添加图片描述
题意
本题的意思是给出我们一个环,相当于一个长度为n的数轴,其中1和n是连在一起的,给我们数轴上的一些区间要求我们构造一些区间,使构造的区间的交集等于给定的区间的并集。
题解
将一个数组划为n个区间
请添加图片描述
假定给出的是这样的区间,那么我们构造的区间就可以每一个缺少其中的一个空隙,这样我们就交集一定不会含有这些空隙但是却会含有给定的区间
请添加图片描述
例如这样,所以我们只需要找到区间间的空隙就可以直接输出答案了

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
const int N = 3010;
struct node {
	int l, r;
}a[N];
int m,n;
bool cmp(node x, node y) {
	return x.l < y.l;
}
void solve() {
		cin>>n>>m;
		for(int i=0;i<m;i++)cin>>a[i].l>>a[i].r;
		sort(a,a+m,cmp);
		cout<<m<<endl;
		for(int i=0;i<m;i++)cout<<a[i].l<<" "<<a[(m-1+i)%m].r<<endl;
}
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin.exceptions(ios::badbit | ios::failbit);
	int t;
	cin >> t;
	while (t--)solve();
}

Hamburger Steak

请添加图片描述
题意
给了我们n个蟹黄堡和m口锅,要求我们输出总时间最短的方案,注意的是一个蟹黄堡可以在不同时间放在两口锅里面烤,但是不能用两口锅同时烤,所以困扰我们最久的就是这个怎样切割的问题;
题解
对于题目我们可以发现,我们所能够做到的最短时间就是所有蟹黄堡所需要的时间加起来除以锅的数量所得到的平均值,所以我们的目标应该是尽可能达到平均值,那么对于这个切割问题又要怎么思考呢
请添加图片描述
比如我们在第一口锅里面放面包,如果多出来一部分,那么我们就可以将多出来的时间放在第二口锅里面煎如果这个时间小于我们在第一口锅中第一个蟹黄堡所用的时间的话,就可以将多出来的时间放在第二口锅里面煎,这样不会对我们的结果产生影响,而如果放在第二口锅中的时间大于在第一口锅中所用的时间的话,说明这样放是不行的,我们就要把锅的最大时间延长到可以刚好煎完这个蟹黄堡并且不会对第一个蟹黄堡造成影响的时候,将第二口锅中剩下的汉堡和第一口锅中的第一个蟹黄堡对换位置,我们可以发现,我们所用的时间刚好就是这个大的蟹黄堡完全煎完的时间

#include<vector>
#include<string>
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<cmath>
using namespace std;
#define int long long 
//#define _ 0
//return ~~(0^_^0)~~
const int maxn = 1e5 + 10;
int a[maxn];
void solve() {
	int n, m;
	cin >> n >> m;
	int sum = 0;
	int maxn = 0;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		sum += a[i];
		maxn = max(maxn, a[i]);
	}
	maxn = max(maxn, (sum + m - 1) / m);
	int now = 0;
	int k = 1;
	for (int i = 1; i <= n; i++) {
		if (maxn - now > a[i]) {
			cout << "1 " << k << " " << now << " ";
			now += a[i];
			cout << now << endl;
		}
		else if (maxn - now == a[i]) {
			cout << "1 " << k << " " << now << " ";
			now = 0;
			k++;
			cout << maxn << endl;
		}
		else {
			cout << "2 " << k + 1 << " 0 " << a[i] - (maxn - now) << " " << k << " " << now << " " << maxn << endl;
			now = a[i] - (maxn - now);
			k++;
		}
	}
}
signed main() {
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	solve();
}

洛谷深搜补题

八皇后

请添加图片描述
题解
对行进行dfs 用三个数组分别表示主对角线,副对角线,每一列是否满足
注意主对角线处于是(i+j),副对角线的处于(n+j-i)

#include <bits/stdc++.h>
using namespace std;
int n;
const int N=20;
vector<int>a(N);
bool l[N],zdj[N],fdj[N];
vector<vector<int>>b;
void dfs(int d){
	if(d==n){
		b.push_back(a);
		return;
	}
	for(int i=0;i<n;i++){
		if(l[i]==0&&zdj[d+i]==0&&fdj[n-d+i]==0){
			a[d]=i;
			l[i]=zdj[i+d]=fdj[i+n-d]=1;
			dfs(d+1);
			l[i]=zdj[i+d]=fdj[i+n-d]=0;
			a[d]=0;
		}
	}
}
void solve(){
	cin>>n;
	dfs(0);
	for(int i=0;i<3;i++){
		for(int j=0;j<n;j++)cout<<(b[i][j]+1)<<" ";
		cout<<endl;
	}
	cout<<b.size();
}
int main(){
    ios::sync_with_stdio(0); 
	cin.tie(0); 
	cout.tie(0);
    solve();
    return 0;
}

马的遍历

请添加图片描述

int dx[8] = { -2, -2, -1, -1, 1, 1, 2, 2 };
int dy[8] = { 1, -1, 2, -2, 2, -2, 1, -1 };

用这个来表示马的运动轨迹,如果经历过就标记,最后没有办法走的话就退出

#include<vector>
#include<string>
#include<iostream>
#include<iomanip>
#include<algorithm>
using namespace std;
//#define _ 0
//return ~~(0^_^0)~~
int n, m, x, y;
const int N = 410;
int g[N][N];
pair<int, int>q[N * N];
void bfs() {
     
    g[x][y] = 0;
    int flag = 1;
    int tt = 0;
    int hh = 0;
    q[0] = { x,y };
    int dx[8] = { -2, -2, -1, -1, 1, 1, 2, 2 };
    int dy[8] = { 1, -1, 2, -2, 2, -2, 1, -1 };
    int gta = 0;
    while (hh <= tt) {
        auto t = q[hh++];
        for (int i = 0; i < 8; i++) {
            int x = t.first + dx[i], y = t.second + dy[i];
            if (g[x][y] == -1 && x > 0 && x <= n && y > 0 && y <= m) {
                g[x][y] = g[t.first][t.second] + 1;
                q[++tt] = { x,y };
            }
        }
    }
}
void solve() {
    cin >> n >> m >> x >> y;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++)g[i][j] = -1;
    } 
    bfs();
   for (int i = 1; i <= n; i++) {
       for (int j = 1; j <= m; j++)cout << setw(5) << left << g[i][j];
        cout << endl;
    }
}
signed main() {
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    solve();
}

涂色问题

其实我们可以发现,只需要将没有包完的部分填成其他颜色就可以了
那我们可以将nn的矩阵扩大到(n+2)(n+2)的矩阵,外面全是零,用bfs将外面的全部染成一种另外的颜色,遇到最后输出就好了

#include<vector>
#include<string>
#include<iostream>
#include<iomanip>
#include<algorithm>
using namespace std;
//#define _ 0
//return ~~(0^_^0)~~
const int N = 45;
int g[N][N];
bool a[N][N];
int dx[4] = { 1,-1,0,0 };
int dy[4] = { 0,0,1,-1 };
int ans = 0;
int n;
pair<int, int>p[N * N];
void ss(int u, int v) {
    g[u][v] = -1;
    p[0] = { u,v };
    int hh = 0, tt = 0;
	while (hh <= tt) {
		auto t = p[hh++];
		for (int i = 0; i < 4; i++) {
			int x = t.first + dx[i], y = t.second + dy[i];
			if (x >= 0 && x <= n+1 && y >= 0 && y <= n+1 && g[x][y] == 0 && a[x][y] == 0) {
                p[++tt] = { x,y };
				a[x][y] = 1;
				g[x][y] = -1;
			}
		}
	}
}
void bfs() {
    ss(0, 0);
}
void solve() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++)cin >> g[i][j];
    }
    bfs();
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if (g[i][j] == -1)cout << 0 << " ";
            else if (g[i][j] == 1)cout << 1 << " ";
            else cout << 2 << " ";
        }
        cout << endl;
    }
}
signed main() {
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    solve();
}
【全局路径规划模块全覆盖算法】(三)代码实现:Boustrophedon Cellular Decomposition Path Planning用珊格地图生成每个cell的覆盖路径 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对Boustrophedon Cellular Decomposition Path Planning用珊格地图生成每个cell的覆盖路径做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。 阅读详情

相关推荐

Coze平台智能体开发实战:打造测试工程师的AI助手

智能体是具备特定身份和能力的AI实体,由大语言模型(LLM)驱动,并通过插件、知识库和工作流扩展其能力。明确的角色定位:可以设定特定身份和专业领域扩展能力:通过插件连接外部工具和服务记忆能力:通过知识库存储和检索专属信息流程化处理:通过工作流执行复杂多步任务通过Coze平台创建测试工程师智能体,可以显著提升测试效率和质量。明确的角色定位:聚焦测试工程师的实际需求丰富的知识库:提供准确的领域知识支持合适的工具集成:通过插件连接现有工具链持续迭代优化:根据反馈不断改进智能体行为自动化测试生成。

hogwarts_beibei的博客 1005

2021牛客暑期多校训练营6 - F(Hamburger Steak)

https://ac.nowcoder.com/acm/contest/11257/F 贪心 #include <iostream> using namespace std; typedef long long ll; ll n, m, t[100005]; int main(){ scanf("%lld%lld", &n, &m); ll sum = 0, mx = 0, tmax = 0; for (int i = 1; i <= n

多思考🤔~ 361

从驱动编译到数据传输:RK3588与FPGA的PCIe通信实战解析

本文详细解析了RK3588与FPGA通过PCIe通信的实战过程,涵盖驱动编译、数据传输及性能优化等关键步骤。通过XDMA驱动实现高效DMA传输,适用于视频处理、数据采集等高性能场景,帮助开发者快速掌握嵌入式系统中的PCIe通信技术。

weixin_29214691的博客 522

2021牛客暑期多校训练营6

出题:3 排名:178 I.Intervals on the Ring CY 题解:构造k个区间使k个区间所有区间交集是m区间的并集,只需要遍历环形的a[i].l和a[i-1].r就可以把中间的无关数字剔除。 #include <bits/stdc++.h> typedef long long ll; typedef std::pair < int, int > pii; const int MAXN = 2e3 + 10; int vis[MAXN]; int main() {

ANTFANAAA的博客 202

基于Transformers库的BERT模型:一个文本情感分类的实例解析

简介 本文来讲述BERT应用的一个例子,采用预训练好的BERT模型来进行演示。BERT的库来源于Transformers,这是一个由PyTorch编写的库,其集成了多个NLP领域SOTA的模型,比如bert、gpt-2、transformer xl等,并且可以自由选择已经预训练好的模型参数,我们可以基于这些参数进行进一步的训练调试。 Part 1: 利用BERT基于特征的方式进行建模 1、任务与数...

蓝天白云梦的csdn博客 2万+

【PCIe DL_Feature详解】

   Data Link Control and Management State Machine在PCIe Gen4引入了DL_Feature这个状态,该状态主要用来协商PCIe link 两端是否支持新的DL Feature,目前为止DL Feature只引入了Scaled Flow Control 来提高Gen4及以上的效率。   DL_Feature 这个状态是可选的,当 Data Link Feature Extended Capability中Data Link Feature Exchang

sinat_38294441的博客 3233

Hamburger Steak

牛客多校6 F 题目描述 Riko is ready to cook hamburger steaks. There are m pans and hamburger steaks that need to be fried. The i-th hamburger steak needs to be fried for ti (which is a positive integer) minutes. Riko can fry it in a certain pan for ti minutes, or

weixin_51793146的博客 258

DRM遇到的实际问题及领悟(3)

DRM遇到的实际问题及领悟(3)

phmatthaus的专栏 635

Hamburger Steak(2021牛客多校第六场F)

题目描述 输入描述 输出描述 输入样例 5 3 1 2 3 4 5 输出样例 1 1 0 1 1 2 0 2 1 2 2 5 1 1 1 5 1 3 0 5 样例说明 题目大意:给定 n 块牛排及它们分别需要烹饪的时间 ti 和 m 个锅,每块牛排最多只能在两个锅上烹饪,且一个锅不能同时烹饪两块牛排,一块牛排也不能同时在两个锅上烹饪,求所有牛排煮熟所需要的最小时间。 阅读题意后不难得出,每个锅的使用时间上限为 max ( 每块牛排烹饪时间总和 / 锅的个数,单块牛排所需最大烹饪时间 ),因此可

国家一级划水运动员的博客 277

实现Win10环境下的MATLAB与虚拟机Ubuntu中的ROS的通讯的方法

   本文主要介绍如何实现Win10环境下的MATLAB与虚拟机Ubuntu中的ROS的通讯,虚拟机我采用的是VMware16.1.1中安装了Ubuntu20.04,并安装ROS Noetic 版本    一、虚拟机Ubuntu中配置    1、在ubuntu终端输入以下命令查看本机地址 ifconfig    如下图所示我目前的IP是192.168.3.128    2、将本机IP写入到.bashrc文件    打开home文件夹,按Ctrl+h显示隐藏的文件,选择.bashrc并打开(

慕羽★的博客 7516

C#与倍福Plc通信——使用仿真软件模拟倍福PLC运行

安装这个软件之前先安装VisualStudio,本文安装这个软件时已经安装了VisualStudio2019。1、下载倍福PLC编程软件TwinCAT。

qq_34059233的博客 3664

Hamburger Steak(第六场F题)

感谢这位大哥写的题解,,看懂了,,,花了一个小时慢慢的把它写出来,写完还是放了两个地方的错误,第一点是能完全煎完一块牛排的时候没有求煎完这块牛排的时候当前煎锅还剩多少,第二是忘了下标是从1开始 AC代码: #include <iostream> #include <vector> #include <algorithm> using namespace std; typedef long long ll; const int N = 100050; struct .

he_qingjun的博客 187

Python语言基本语法元素

Python语言的基本语法元素:包括Python程序的格式框架,语法元素名称,数据类型和语句元素以及基本的输入输出函数。

Python全栈系列 8364

【牛客】2024暑期牛客多校6 补题记录

【代码】【牛客】2024暑期牛客多校6 补题记录。

Texcavator的博客 844

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

牛客多校第6场J(Heritage of skywalkert)

牛客多校第6场J(Heritage of skywalkert) 题意: 给出初始的A,B,C,按照题目中迭代n次求n个z,然后求这n个数中的两个数lcm的最大值。 思路: 随机两个正整数互质的概率为 6/π^2,概率很大,所以我们暴力取前20个数然后枚举lcm就。 可以用STL的nth_element,这个容器的作用是取前k大的数。 用法:nth_element(a,a+n-20,a...

pcfbyssz的博客 295

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

牛客多校6 Hamburger Steak 贪心

Hamburger Steak 题目描述 Riko is ready to cook hamburger steaks. There arem pans and n hamburger steaks that need to be fried. Theiii-th hamburger steak needs to be fried forti​(which is a positive integer) minutes. Riko can fry it in a certain pan fort...

srh20的博客 250

牛客多校训练营2020第6场

E 签到题 题意:给定N, k,输出一个排列,满足:存在一段长度为i的子序列,其和模N余k(1≤i≤N1\leq i\leq N1≤i≤N)。 思路:如果存在,n∗(n+1)2=k(modN)\frac{n*(n+1)}{2} = k (mod N)2n∗(n+1)​=k(modN)。 如果是奇数,输出N 1 N-1 2 N-2 …… 如果是奇数,输出N N2\frac{N}{2}2N​, 1 N-1 2 N-2 …… #include<iostream> #include<cstdio

micaudience的博客 159

牛客多校Round 6

Solved:3 rank:156 J. Heritage of skywalker 学习一下nth_element 可以o (n)的找出前多少大的元素 #include <bits/stdc++.h> using namespace std; typedef unsigned long long ull; int n; unsigned x...

weixin_30412013的博客 91

牛客(多校6):Data structure

示例1: 输入 10 10 7 4 2 10 4 3 2 6 10 9 2 7 3 1 4 8 2 5 3 8 10 10 2 6 2 3 6 2 4 6 4 3 10 2 8 8 10 3 10 4 2 3 2 2 6 4 1 7 10 输出 0 2 0 1 7 0 2 0 1 0 题意 给定一棵n个节点的有根数,第i个点的编号是i。 有m次询问,每次询问给出l,r,x,求有多少点编号的二元组(i,j)满足 l<=i<j<=r 且 i 和 j 的最近公共祖先是节点x。 分析: 这.

Mr顺 323

2021暑期牛客多校训练6

I-Intervals on the Ring 题意: 一个环由1-n组成,两两之间彼此相邻。现在给出一些互不相交的区间,要求构造一些区间,使得这些区间的交集为所给区间的并集。 思路: 要使构造的所有区间的交集为已知区间的并集,那么构造的每一个区间即要覆盖所有的已知区间有要留有一定的空余;容易想到:对于题目已给区间的其他单个区间的补区间即为所求区间 即先将所给区间按左端点大小排序,对于每一个区间输出当前区间的左端点和上一个区间的右端点;特判只有一个区间的情况; AC代码: #include <bits

code___farmer的博客 170

牛客(多校6):Josephus Transform

示例1 输入 5 1 3 1 输出 3 1 5 2 4 示例2 输入 5 2 3 3 2 3 输出 1 2 3 4 5 题意: • 给一个长度为 n 的排列和 m 次操作,每个操作可以表示为 (k, x),即进行 x 次以 k-约瑟夫变换。问最后排列长啥样。 代码: #include<bits/stdc++.h> using namespace std; const int M=1e5+5; int n,q,k,x,S[M],a[M],b[M],c[M],t=1,l,r,m,i; in.

Mr顺 301

牛客(多校6): K-Bag

示例1: 输入 1 8 3 2 3 2 1 3 3 2 1 输出 YES 题意 K-bag序列定义为由多个1-k的排列顺序连接起来的序列,想问给定序列是不是k-bag的连续子序列 代码: #include <bits/stdc++.h> const int N=5e5+10; using namespace std; int T,n,k,a[N],b[N],cnt,pre[N],len[N]; int main(){ scanf("%d",&T); while(T-.

Mr顺 314

牛客多校6 J Defend Your Country

Defend Your Country 题目链接 题意:给你n个点m条边的无向图,每个点有权值a[i],对答案ans的贡献为a[i]*(-1)^所在连通块内点数,你可以删去任意的边,问你ans最大是多少 2≤n≤1e6 1≤m≤1e6 m≥n−1 结论: 若n为偶数,那么ans=∑a[i]ans=\sum a[i]ans=∑a[i] 若n为奇数,那么最多删除一个点 n为偶数很好写,n为奇数的时候,ans=∑a[i]−2∗ans1\sum a[i] -2*ans1∑a[i]−2∗ans1,如果ans1这个点不

qq_48693231的博客 229

牛客(多校6):African Sort

示例1 输入 2 2 1 2 2 1 输出 0 4 示例2 输入 5 1 3 2 5 1 4 输出 332748129 代码: #include <cstdio> #define ll long long const int N=1e5+10,mod=998244353; ll ksm(ll a,ll b){ll r=1;while(b){if(b&1)r=r*a%mod;a=a*a%mod,b>>=1;}return r;}; ll n,m,f[N],a[N].

Mr顺 365

牛客(多校6):Binary Vector

示例1: 输入 3 1 2 3 输出 500000004 194473671 861464136 代码: #include<bits/stdc++.h> #define ll long long using namespace std; const int N=2e7; int t,n; ll mod=1e9+7; ll ans[N+10]; int main() { ll inv=1,_2=500000004,now=1; ans[0]=1; for(int ..

Mr顺 400

牛客多校第6场J题 Upgrading Technology

Upgrading Technology 【思路】: 我的想法是先处理出n行的ST表,然后按照预处理出选择1~m等级的最小花费 然后O(n * m * log(m))的处理出ST表,然后O(n * m)枚举更新答案,然后愉快 的wa了3个小时,没有考虑到等级可以为0.然后特殊处理一下这种情况就可以 ac本题 ST表处理的是[l, r]里的前缀和的最小花费 附上代码: #include ...

weixin_30551963的博客 174

牛客多校6 J. Number Game

思路:不难发现b只有两种取值 b和a-b,对于c的操作,只有当b和a-b轮流作用于c时,才不会还原前一次操作,所以有两种情况:先b后a-b;打表不难发现这两种情况得出的c的绝对值是一个有规律的数列。题意: 有三个数 a,b,c,你可以将b变成a-b,将c变成b-c,且两种操作不限次数,求你是否能将c变成一个指定的数。...

m0_63535901的博客 257
上一篇: 牛客多校五
下一篇: 杭电第五场
阿汤太菜了
博客等级 码龄6年 4粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值