codefoces 994

2024-04-05 21:08
文章标签 994 codefoces

本文主要是介绍codefoces 994,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

A. Fingerprints

水题,暴力

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<set>
#include<map>
#include<stack>
#include<queue>
using namespace std;
#define ll long long
#define pb push_back
#define inf 0x3f3f3f3f
#define eps 1e-10
const int N = 3e5+10;int n,m,a[N],b[N];int main() {ios::sync_with_stdio(0);cin.tie(0);cin>>n>>m;vector<int> v;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=m;i++) cin>>b[i];for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {if(a[i]==b[j]) v.pb(a[i]);}}for(int i=0;i<v.size();i++) {cout<<v[i];if(i!=v.size()-1) cout<<" ";}return 0;
}


B. Knights of a Polygonal Table

模拟,用优先队列(小根堆)维护前k大值

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<set>
#include<map>
#include<stack>
#include<queue>
using namespace std;
#define ll long long
#define pb push_back
#define inf 0x3f3f3f3f
#define eps 1e-10
const int N = 3e5+10;int n,k;struct nod {ll a,b;int id;
}p[N];
ll s[N];bool cmp(nod x,nod y) {return x.a<y.a;
}int main() {ios::sync_with_stdio(0);cin.tie(0);cin>>n>>k;for(int i=0;i<n;i++) cin>>p[i].a,p[i].id=i;for(int i=0;i<n;i++) cin>>p[i].b;sort(p,p+n,cmp);priority_queue<int, vector<int>, greater<int> > q;ll tp=0;s[0]=p[0].b;for(int i=1;i<n;i++) {q.push(p[i-1].b);tp+=p[i-1].b;if(q.size()>k) {ll tt=q.top();tp-=tt;q.pop();}s[i]=tp+p[i].b;}for(int i=0;i<n;i++) {cout<<s[p[i].id];if(i!=n-1) cout<<" ";}return 0;
}


C. Two Squares(给你两个正方形,判断有没有相交 

暴力判断是否存在点位于两个正方形内

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<set>
#include<map>
#include<stack>
#include<queue>
using namespace std;
#define ll long long
#define pb push_back
#define inf 0x3f3f3f3f
#define eps 1e-10
const int N = 3e5+10;struct nd{int x,y;
}p1[10],p2[10];bool cmp1(nd a,nd b) {if(a.y==b.y) return a.x<b.x;return a.y<b.y;
}bool cmp2(nd a,nd b) {if(a.x==b.x) return a.y<b.y;return a.x<b.x;
}int ss(nd a,nd b,nd c) {return abs((c.x-a.x)*(c.y-b.y)-(c.x-b.x)*(c.y-a.y));
}int main() {ios::sync_with_stdio(0);cin.tie(0);for(int i=0;i<4;i++) cin>>p1[i].x>>p1[i].y;for(int i=0;i<4;i++) cin>>p2[i].x>>p2[i].y;sort(p1,p1+4,cmp1);swap(p1[2],p1[3]);sort(p2,p2+4,cmp2);swap(p2[2],p2[3]);int S1=(p1[1].x-p1[0].x)*(p1[1].x-p1[0].x),S2=(p2[1].x-p2[0].x)*(p2[1].x-p2[0].x)+(p2[1].y-p2[0].y)*(p2[1].y-p2[0].y);int f=0;for(int i=-100;i<=100;i++) {for(int j=-100;j<=100;j++) {nd tp;tp.x=i,tp.y=j;int k=4,id=0,s1=0,s2=0;while(k--) {s1+=ss(p1[id%4],p1[(id+1)%4],tp);id++;}k=4,id=0;while(k--) {s2+=ss(p2[id%4],p2[(id+1)%4],tp);id++;}if(s1==2*S1 && s2==2*S2) f=1;}}if(f) cout<<"YES"<<endl;else cout<<"NO"<<endl;return 0;
}

这篇关于codefoces 994的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/878148

相关文章

Day 6:994 腐烂的橘子

994 腐烂的橘子 1. 题目描述2. 解题思路3. 代码实现(广度优先遍历) 1. 题目描述 994 腐烂的橘子 2. 解题思路 (1) 首先统计新鲜橘子的数量并将腐烂橘子坐标加入初始队列中; (2) 使用BFS遍历的思想依次遍历每一层,首先判断是否存在新鲜橘子,若存在则时间+1; (3) 对于每一层若遇到新鲜橘子则将其变为腐烂橘子并加入队列中,同时新鲜橘子数-1; (4)

秋招突击——算法练习——8/26——图论——200-岛屿数量、994-腐烂的橘子、207-课程表、208-实现Trie

文章目录 引言正文200-岛屿数量个人实现 994、腐烂的橘子个人实现参考实现 207、课程表个人实现参考实现 208、实现Trie前缀树个人实现参考实现 总结 引言 正文 200-岛屿数量 题目链接 个人实现 我靠,这道题居然是腾讯一面的类似题,那道题是计算最大的岛屿面积,如果当时没做出来,现在得哭死!好在做出来了!这道题单纯使用回溯实现的,然后修改一下地图的坐标

Codefoces 432C Prime Swaps(数论+贪心)

题目连接:Codefoces 432C Prime Swaps 题目大意:给出一个序列,长度为n,要求用5n以内的交换次数使得序列有序,并且交换的i,j两个位置的数时要满足,j−i+1为素数。 解题思路:a数组为对应的序列,b数组为对应的有序序列,p为对应数的位置。每次从有序序列最小的位置开始,该为必须放b[i]才对,所以p[b[i]]=i,否则就要将b[i]尽量往前换,直到换到i的位置

从零学算法994

994. 腐烂的橘子 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1 。 示例 1: 输入:grid = [[2,1,1],[1,1,0],[0,1

多源bfs,LeetCode 994. 腐烂的橘子

一、题目 1、题目描述 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1 。 2、接口描述 python3 ​ class Solutio

LeetCode 每日一题 ---- 【994. 腐烂的橘子】

LeetCode 每日一题 ---- 【994. 腐烂的橘子】 994.腐烂的橘子方法:多源BFS 994.腐烂的橘子 方法:多源BFS 昨天没吃完的橘子今天就坏掉了 可算是掉进橘子窝了 题目提到了一个腐烂掉全部橘子所需要的最小分钟,其实只需要满足从上往下每一步都尽最大可能腐烂到所有橘子就可以满足答案的最小分钟 一个多源BFS,第一步统计初始新鲜的橘子和腐烂的橘子,并将腐

【滤波器】基于matlab平方根升余弦滤波器【含Matlab源码 994期】

⛄一、获取代码方式 获取代码方式1: 完整代码已上传我的资源:【滤波器】基于matlab平方根升余弦滤波器【含Matlab源码 994期】 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏Matlab信号处理(初级版) 备注: 点击上面蓝色字体付费专栏Matlab信号处理(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab信号处理(初级版),凭支付

LeetCode 994—— 腐烂的橘子

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 1.记录下初始新鲜橘子的位置到 notRotting,我们按照行把二维数组拉成一维,所以,一个vector 就可以实现了;2.如果没有新鲜橘子,那么第 0 分钟所有橘子已经腐烂,直接返回;3.如果有新鲜橘子,那么我们遍历每一个新鲜橘子,查看它的上下左右是否有腐烂的橘子,如果有,代表这一分钟这个新

【LeetCode每日一题】【BFS模版与例题】【二维数组】130被围绕的区域 994 腐烂的橘子

前几天写过一篇BFS比较基础版的遍历 【LeetCode每日一题】【BFS模版与例题】863.二叉树中所有距离为 K 的结点 ,可以先看一下再看本文 用 BFS 算法遍历二维数组 遍历二维矩阵:二维矩阵中的一个位置看做一个节点,这个节点的上下左右四个位置就是相邻节点。 130 被围绕的区域 解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的’O’ 都不会被填充为’X’。 任何

Leetcode 994. 腐烂的橘子

心路历程: 一开始以为和刚做过的岛屿问题很像,只不过是把岛屿问题换成BFS去做,然后再加上一些计数的规则。结果做完后发现只能通过一半左右的测试用例,发现有一个逻辑错误在于,当腐烂的橘子位于两端时,可以共同腐蚀从而加速进程。而依次遍历所有grid再分别去BFS的顺序思路很明显就不行了。从网上搜素了一下相关的解题思路,发现可以按照多点开花的BFS来做这道题,感觉这样更有图的味道了。 这道题对我来