首页 > 编程语言 >LCCUP 22秋季编程大赛

LCCUP 22秋季编程大赛

时间:2022-10-05 14:37:06浏览次数:104  
标签:plate vist 22 int 弹珠 编程 else LCCUP dir


​LCCUP 22秋季编程大赛​

总结:

交的时候,460名 然后慢慢得掉到最后580。第三题一开始没读好题,浪费了很长时间。四五题没有什么思路,直接就没写了。(横向对比,比春季进步了一些(●ˇ∀ˇ●)—春季只A了两题 1000开外= =)

LCCUP 22秋季编程大赛_顺时针

思路:
1、判断A,B趋势是否相同,然后t+=1,不然t=0; 记录过程种t得最大值 为答案

2、第二题感觉和leetcode有题很像,但是忘记是叫什么了。根据题意,一个点只可能是交通枢纽,或者交通枢纽在它连接得点上,因此只要分这两种情况判断就好。(因为题意没有说一定 输入会有连续得1-n个点,所以用个访问数组,记录一下有什么点·)

3、记忆化搜索。vist[i][j][k] 表示 坐标x,y已k方向进入 0表示没访问,1表示可以进入到洞穴,-1表示进入不到.

1. 气温变化趋势

若第 i+1 天的气温 高于 第 i 天,为 上升 趋势
若第 i+1 天的气温 等于 第 i 天,为 平稳 趋势
若第 i+1 天的气温 低于 第 i 天,为 下降 趋势
已知 temperatureA[i] 和 temperatureB[i] 分别表示第 i 天两地区的气温。
组委会希望找到一段天数尽可能多,且两地气温变化趋势相同的时间举办嘉年华活动。请分析并返回两地气温变化趋势相同的最大连续天数。

即最大的 n,使得第 i~i+n 天之间,两地气温变化趋势相同

class Solution {
public:
int temperatureTrend(vector<int>& A, vector<int>& B) {
int n = A.size();
int ans = 0,t = 0;
for(int i=1;i<n;i++) {
if((A[i]==A[i-1]&&B[i]==B[i-1])||(A[i]>A[i-1]&&B[i]>B[i-1])||(A[i]<A[i-1]&&B[i]<B[i-1])) {
t++;
ans = max(ans,t);
}
else t = 0;
}
return ans;
}
};

2. 交通枢纽

path[i] = [a, b] 表示有一条从地点 a通往地点 b 的 单向 交通专线。
若存在一个地点,满足以下要求,我们则称之为 交通枢纽:

所有地点(除自身外)均有一条 单向 专线 直接 通往该地点;
该地点不存在任何 通往其他地点 的单向专线。
请返回交通专线的 交通枢纽。若不存在,则返回 -1。

class Solution {
public:
int transportationHub(vector<vector<int>>& path) {
bool v[1001][1001];
bool vist[1001];
memset(v,false,sizeof(v));
memset(vist,false,sizeof(vist));
int cnt = 0;
for(auto &c: path) {
v[c[0]][c[1]] = true;
if(!vist[c[0]]){
vist[c[0]] = true;
cnt++;
}
if(!vist[c[1]]) {
vist[c[1]] = true;
cnt++;
}
}
for(int i=0;i<1001;i++) {
if(vist[i]) {
//判断i是不是交通枢纽
// 存储i可以去的地方
vector<int> t;
for(int j=0;j<1001;j++) {
if(i==j) continue;
if(v[i][j]) t.push_back(j);
}

if(t.size()==0) {
//只有i为枢纽得可能
int cntt = 0;
for(int j=0;j<1001;j++) {
if(i==j) continue;
if(v[j][i]) cntt++;
}
if(cntt==cnt-1) return i;
}
else {
//只有i可以去的地方为枢纽
for(auto &c: t) {
int tc = 0, ct = 0;
for(int j=0;j<1001;j++) {
if(j==c) continue;
if(v[j][c]) tc++;
if(v[c][j]) ct++;
}
if(tc==cnt-1&&ct==0) return c;
}
}
break;
}
}
return -1;

}
};

​3. 弹珠游戏​

N*M 大小的弹珠盘的初始状态信息记录于一维字符串型数组 plate 中,数组中的每个元素为仅由 “O”、“W”、“E”、“.” 组成的字符串。其中:

“O” 表示弹珠洞(弹珠到达后会落入洞中,并停止前进);
“W” 表示逆时针转向器(弹珠经过时方向将逆时针旋转 90 度);
“E” 表示顺时针转向器(弹珠经过时方向将顺时针旋转 90 度);
“.” 表示空白区域(弹珠可通行)。
游戏规则要求仅能在边缘位置的 空白区域 处(弹珠盘的四角除外)沿 与边缘垂直 的方向打入弹珠,并且打入后的每颗弹珠最多能 前进 num 步。请返回符合上述要求且可以使弹珠最终入洞的所有打入位置。你可以 按任意顺序 返回答案。

class Solution {
public:
int vist[1001][1001][4];//0 1 -1
int dx[4] = {0,0,1,-1};//右左 下上
int dy[4] = {1,-1,0,0};
// 记录在[i,j]的状态
int n,m;
int dfs(int num, vector<string>& plate, int x, int y, int dir) {
if(num==-1) return -1;
if(vist[x][y][dir]!=0)
return vist[x][y][dir];
if(plate[x][y]=='O') {
return 1;
}
else if(plate[x][y]=='W') {//逆时针
if(dir==0) dir = 3;
else if(dir==1) dir = 2;
else if(dir==2) dir = 0;
else dir = 1;
}
else if(plate[x][y]=='E') {
if(dir==0) dir = 2;
else if(dir==1) dir = 3;
else if(dir==2) dir = 1;
else dir = 0;
}

if(x+dx[dir]<0||y+dy[dir]<0||x+dx[dir]>=n||y+dy[dir]>=m) return -1;
int d = dfs(num-1,plate,x+dx[dir],y+dy[dir],dir);
vist[x+dx[dir]][y+dy[dir]][dir] = d;
return d;
}

vector<vector<int>> ballGame(int num, vector<string>& plate) {
n = plate.size();
m = plate[0].size();
memset(vist,0,sizeof(vist));
vector<vector<int>> ans;
for(int i=1;i<n-1;i++) {
//左右进入
if(plate[i][0]=='.')
if(dfs(num,plate,i,0,0)==1) ans.push_back({i,0});
if(plate[i][m-1]=='.')
if(dfs(num,plate,i,m-1,1)==1) ans.push_back({i,m-1});
}
for(int j=1;j<m-1;j++) {
//上下进入
if(plate[0][j]=='.')
if(dfs(num,plate,0,j,2)==1) ans.push_back({0,j});
if(plate[n-1][j]=='.')
if(dfs(num,plate,n-1,j,3)==1) ans.push_back({n-1,j});
}
return ans;

}
};

4. 二叉树灯饰

5. 舒适的湿度


标签:plate,vist,22,int,弹珠,编程,else,LCCUP,dir
From: https://blog.51cto.com/u_15760953/5732643

相关文章

  • Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution
    第一遍:摘要:现有的SR方法有两个潜在的限制:首先,学习从LR到HR图像的映射函数通常是一个病态问题,因为存在无限个HR图像可以下采样到相同的LR图像;其次,配对的LR-HR数据在现实应......
  • 【LGR-122】T1 & T2 题解
    T1下面所说的做法来自于dty(%%%%%%%%%)注意到每一个数的绝对值是大于等于\(2\)的,那么就可以发现一个性质:当一个区间长度为\(len\)时,如果\(len\ge62\),那么这个区间的......
  • 2022最新SpringMVC面试题附完整答案
    SpringMVC面试题一、单选题1.下列关于SpringMVC说法正确的是BA.SpringMVC和Spring没有关系B.SpringMVC是一个控制层框架,复制接收和处理请求C.SpringMVC可以脱离Spring单独......
  • 2022最新Spring面试题附完整答案
    Spring面试题一、单选题1.Spring是年发布的(B)A.2022B.2004C.2006D.20082.Spring中的对象的作用域不包括(B)A.sessionB.servletContextC.singletonD.proptotype3.在Spring......
  • Matlab R2022a软件安装包和安装教程
    MatlabR2022a软件简介:MatlabR2022a是一款非常实用的数字编程处理软件,软件增加一个时间表数据容器,用于索引和同步带时间戳的表格数据。软件拥有字符串数组,可以让用户进行有......
  • 2022年 第 46 届 ICPC 国际大学生程序设计竞赛亚洲区域赛(上海)
    \(D\\\Strange\Fractions\)\[\frac{p}{q}=\frac{a}{b}+\frac{b}{a}\]因为\(a,b\)一定是互质的,所以\(ab=q\),所以将\(q\)分解质因数然后分配一下质因子即可。即\(p_{......
  • 2022.10.5java特性和优势
    Java构建工具:Ant,Maven,Jekins应用服务器:Tomcat,Jettty,Jboss,Websphere,weblogicWeb开发:Struts,Spring,Hibernate,myBatis开发工具:Eclipse,Netbean,intellij......
  • Azure DevOps Server 2022新功能:全新的TFVC操作界面
    AzureDevOpsServer(之前名称为TFS)从2013年开始就支持分布式(Git)和集中式(TFVC)两种代码库,近年来由于Git被软件研发团队广泛采纳,集中式代码库(TFVC或SVN)逐渐被开发人员抛弃;但......
  • P3226 [HNOI2012]集合选数 题解
    纪念一下30紫and500AC首先先膜拜一下神仙出题人,这题太神仙了。题意:要构造一个集合,使得$x\inA$,满足$2x\notinA$且$3x\notinA$,求\(\{1,2,\ldots,n\}\)......
  • Python编程经验
    目录代码结构工作目录全局变量调试信息异常处理尝试次数化简结构日志哈希和ID函数第三方库exchangelib字符串处理replacestripsplitjoin格式化列表处理打包函数代码结构......