手机App防沉迷系统-算法

news/2024/9/23 9:20:42/
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/news/1460199.html

相关文章

springboot 设置response和request的默认格式 驼峰或者SNAKE_CASE

springboot 设置response和request的默认格式 驼峰或者SNAKE_CASE。 我们使用默认配置的情况下&#xff0c;response和request是由jackson jason序列化和解析的&#xff0c;因此&#xff0c;我们只需要配置好jackson json的默认格式就可以。 要设置 jackson json默认的更多格式…

Linux程序依赖动态链接库目录管理和案例分析

Linux程序运行时查找依赖的动态链接库路径 编译时指定的-rpath&#xff1a;如果程序在编译时使用了-Wl,-rpath,链接器选项&#xff0c;那么程序在运行时也会在这些指定的目录中搜索库。环境变量LD_LIBRARY_PATH指定的目录&#xff1a;这是一个环境变量&#xff0c;可以包含一系…

SqlException 口令已经失效

Orcle密码过期了 //查看过期时间 SELECT * FROM dba_profiles s WHERE s.profileDEFAULT AND resource_namePASSWORD_LIFE_TIME;//修改过期时间 alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

PHP数值数组讲解,for循环及函数 遍历数组获取元素

源码 <?phpheader("Content-Type:text/html;Charsetutf8");//创建数值数组$arr1 array();//简化创建语法 $arr2 [];//通过索引为数组添加不同类型的元素$arr1[0] "zhangsan" ;//也可以乱序添加元素$arr1[2] 12 ;$arr1[1] true ; //true输出为1 f…

SOCKET编程(4):SOCKET实战

SOCKET实战 Writen()、Readn()函数 send()函数存在需要发送的字符数len小于函数返回的已发送的字符数(ssize_t)的问题 recv()函数存在需要接收的字符数len小于函数返回的已接收的字符数(ssize_t)的问题 解决上述问题通过Writen()、Readn()函数实现 //buff是数据存储地址&a…

【网站项目】SpringBoot803房屋租赁管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

通过linux花里胡哨的控制台,学习linux基础命令

今天这个B我装定了&#xff01; 前言命令集 开始1、cowsay &#xff08;让牛说话&#xff0c;够无聊的&#xff0c;但牛说的话是你输入的&#xff0c;细思极恐&#xff01;&#xff09;Debian/Ubuntu 安装命令&#xff1a;RHEL/CentOS/Fedora 安装&#xff1a;运行解释 2、fort…

Apache SeaTunnel 4月回顾:明星贡献者与技术突破

各位热爱 SeaTunnel 的小伙伴们&#xff0c;SeaTunnel 社区 4 月份月报来啦&#xff01;这里将记录 SeaTunnel 社区每月的重要更新&#xff0c;欢迎关注&#xff01; 月度 Merge 之星 感谢以下小伙伴 4 月为 Apache SeaTunnel 做的精彩贡献&#xff08;排名不分先后&#xff…