手机App防沉迷系统-算法

embedded/2024/10/18 14:26:28/
java">import java.util.*;
public class Main{public static void main(String[] args){Scanner in=new Scanner(System.in);int n=Integer.parseInt(in.nextLine());//已注册app列表List<Log> list=new ArrayList<>();for(int k=0;k<n;k++){String[] str=in.nextLine().split(" ");String name=str[0];int level=Integer.parseInt(str[1]);double begin=transTime(str[2]),end=transTime(str[3]);Log cur=new Log(begin,end,name,level);//冲突标志int conflict=0;for(int i=0;i<list.size();i++){Log pre=list.get(i);// 冲突发生if(check(pre,cur)){conflict=1;//待注册的app优先级更低,不能注册if(pre.level>=cur.level){break;}int j=i+1;boolean flag=true;//扫描pre之后注册的app信息while(j<list.size()){Log tmp=list.get(j);// 存在冲突且已注册app的优先级更高,当前app不能注册if(tmp.begin<cur.end&&tmp.level>cur.level){flag=false;break;}j++;}if(flag){list.remove(i);list.add(cur);}else{break;}                                     }}//未发生冲突,注册if(conflict==0){list.add(cur);}}double query=transTime(in.nextLine());String ans="NA";        for(Log log:list){if(log.begin<=query&&query<=log.end){ans=log.name;break;}}  System.out.println(ans);      }//时间格式转成小时public static double transTime(String s){String[] arr=s.split(":");double ans=0;ans+=Integer.parseInt(arr[0]);ans+=Integer.parseInt(arr[1])*1.0/60;return ans;}//冲突检查public static boolean check(Log pre,Log cur){if(pre.end<=cur.begin||cur.end<=pre.begin){return false;}return true;}
}
class Log{double begin,end;String name;int level;public Log(double begin,double end,String name,int level){this.begin=begin;this.end=end;this.name=name;this.level=level;}
}

注:按照图例,应该不存在两个app注册时间仅有一个交点(相同时刻)的情况,如app1:   09:00-10:00, app2:  10:00-11:00


http://www.ppmy.cn/embedded/39782.html

相关文章

Linux——mysql运维篇

回顾基本语句&#xff1a; 数据定义语言 ( DDL ) 。这类语言用于定义和修改数据库的结构&#xff0c;包括创建、删除和修改数据库、表、视图和索引等对象。主要的语句关键字包括 CREATE 、 DROP 、 ALTER 、 RENAME 、 TRUNCATE 等。 create database 数据库 &…

Win11安装Docker Desktop运行Oracle 11g 【详细版】

oracle docker版本安装教程 步骤拉取镜像运行镜像进入数据库配置连接数据库&#xff0c;修改密码Navicat连接数据库 步骤 拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g运行镜像 docker run -d -p 1521:1521 --name oracle11g registry.cn-ha…

工业机器人应用实践之玻璃涂胶(篇三)

工业机器人 接上篇文章&#xff0c;浅谈一下实践应用&#xff0c;具体以玻璃涂胶为例&#xff1a; 了解工业机器人在玻璃涂胶领域的应用 认识工具坐标系的标定方法 掌握计时指令的应用 掌握人机交互指令的应用 掌握等待类指令用法&#xff08;WaitDI、WaitUnitl 等&#xff0…

解决springboot项目的网站静态页面显示不全问题

在通过springboot搭建项目时&#xff0c;为了能够访问静态的前端页面&#xff0c;我们考虑到访问的优先级问题&#xff0c;通常选择将资源放在recourses/static的目录下&#xff0c;如下&#xff1a; 这时可能会出现类似于下面这种图片无法加载、没有按照指定位置显示的情况&am…

Linux线程(二)线程互斥

目录 一、为什么需要线程互斥 二、线程互斥的必要性 三、票务问题举例&#xff08;多个线程并发的操作共享变量引发问题&#xff09; 四、互斥锁的用法 1.互斥锁的原理 2、互斥锁的使用 1、初始化互斥锁 2、加锁和解锁 3、销毁互斥锁&#xff08;动态分配时需要&#…

免费开源,无需 GPU,本地化部署大语言模型的对话系统

免费开源&#xff0c;无需 GPU&#xff0c;本地化部署大语言模型的对话系统 分类 编程技术 项目名: FreeAskInternet -- 本地化部署大语言模型的对话系统 Github 开源地址&#xff1a; https://github.com/nashsu/FreeAskInternet FreeAskInternet 是一个免费开源的工具&am…

AI绘画已如此厉害,为何我们仍需学习绘画?

在这个AI技术日新月异的时代&#xff0c;AI绘画能力的大幅提升已经不是什么新鲜事。它们以惊人的速度和惊人的精细度完成作品&#xff0c;让不少人感叹&#xff1a;“这是不是意味着&#xff0c;未来绘画将完全由AI接管&#xff0c;人类的创作将变得无足轻重&#xff1f;”在这…

前端开发指导

前端开发指导 本文介绍了配置前端开发环境需要的软件、配置项等,指导如何开始进行UDM部门前端开发的全流程。本文以Windows系统下在Microsoft Virtual Studio Code中开发为基础。 一、综述 目标:零基础或者新员工依照此文档,能够完成开发环境的搭建及熟悉测试环境的搭建。…