Div2 D. Effects of Anti Pimples

解题思路

  • a_i由小到大排序
  • 若不考虑绿色的情况则a_i为最大值的情况为2^{i-1},即选择在它之前的点
  • 对于同时选a_i,a_j,a_i=a_j,j> i,会被a_j统计贡献时考虑
  • 考虑绿色,对于每个i,若选则2*i,3*i,\cdots均选
  • 对于每个i预处理出max(a_{2*i},a_{3*i},\cdots ),记作mx_i
  • mx_i由小到大排序
  • mx_i为答案的情况为2^{i-1}                                                                                                           
    
    import java.io.*;
    import java.math.BigInteger;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.LinkedList;
    import java.util.Map;
    import java.util.Objects;
    import java.util.PriorityQueue;
    import java.util.Queue;
    import java.util.Scanner;
    import java.util.Stack;
    import java.util.StringTokenizer;
    import java.util.TreeMap;
    import java.util.TreeSet;
    import java.util.Vector;//implements Runnable
    public class Main {static long md=(long)998244353;static long Linf=Long.MAX_VALUE/2;static int inf=Integer.MAX_VALUE/2;static int N=100010;static int n=0;static int m=0;staticclass Node{long x;long y;public Node() {}public Node(long u,long v) {x=u;y=v;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Node now = (Node) o;return x==now.x&&y==now.y;}@Overridepublic int hashCode() {return Objects.hash(x, y);}}static void solve() throws Exception{AReader input=new AReader();
    //		Scanner input=new Scanner(System.in);PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));	String al="abcdefghijklmnopqrstuvwxyz";char[] ac=al.toCharArray();boolean[] isnotpri=new boolean[N+1];//		int T=input.nextInt();
    //		while(T>0) {
    //			T--;// 		}n=input.nextInt();int[] a=new int[n+1];HashMap<Integer, Integer> hs=new HashMap<Integer, Integer>();int sum=n;for(int i=1;i<=n;++i) {a[i]=input.nextInt();if(hs.get(a[i])==null) {hs.put(a[i], 1);}else {int z=hs.get(a[i]);hs.put(a[i], z+1);}}int[] mx=new int[n+1];for(int i=1;i<=n;++i) {mx[i]=a[i];for(int j=i*2;j<=n;j+=i) {mx[i]=Math.max(mx[i], a[j]);}}Arrays.sort(mx,1,n+1);long ans=0;long now=1;for(int i=1;i<=n;++i) {ans=(ans+now*mx[i]%md)%md;now=now*2%md;}out.println(ans);out.flush(); out.close();}public static void main(String[] args) throws Exception{solve();}
    //	public static final void main(String[] args) throws Exception {
    //		  new Thread(null, new Tx2(), "线程名字", 1 << 27).start();
    //	}
    //		@Override
    //		public void run() {
    //			try {
    //				//原本main函数的内容
    //				solve();
    //
    //			} catch (Exception e) {
    //			}
    //		}staticclass AReader{ BufferedReader bf;StringTokenizer st;BufferedWriter bw;public AReader(){bf=new BufferedReader(new InputStreamReader(System.in));st=new StringTokenizer("");bw=new BufferedWriter(new OutputStreamWriter(System.out));}public String nextLine() throws IOException{return bf.readLine();}public String next() throws IOException{while(!st.hasMoreTokens()){st=new StringTokenizer(bf.readLine());}return st.nextToken();}public char nextChar() throws IOException{//确定下一个token只有一个字符的时候再用return next().charAt(0);}public int nextInt() throws IOException{return Integer.parseInt(next());}public long nextLong() throws IOException{return Long.parseLong(next());}public double nextDouble() throws IOException{return Double.parseDouble(next());}public float nextFloat() throws IOException{return Float.parseFloat(next());}public byte nextByte() throws IOException{return Byte.parseByte(next());}public short nextShort() throws IOException{return Short.parseShort(next());}public BigInteger nextBigInteger() throws IOException{return new BigInteger(next());}public void println() throws IOException {bw.newLine();}public void println(int[] arr) throws IOException{for (int value : arr) {bw.write(value + " ");}println();}public void println(int l, int r, int[] arr) throws IOException{for (int i = l; i <= r; i ++) {bw.write(arr[i] + " ");}println();}public void println(int a) throws IOException{bw.write(String.valueOf(a));bw.newLine();}public void print(int a) throws IOException{bw.write(String.valueOf(a));}public void println(String a) throws IOException{bw.write(a);bw.newLine();}public void print(String a) throws IOException{bw.write(a);}public void println(long a) throws IOException{bw.write(String.valueOf(a));bw.newLine();}public void print(long a) throws IOException{bw.write(String.valueOf(a));}public void println(double a) throws IOException{bw.write(String.valueOf(a));bw.newLine();}public void print(double a) throws IOException{bw.write(String.valueOf(a));}public void print(char a) throws IOException{bw.write(String.valueOf(a));}public void println(char a) throws IOException{bw.write(String.valueOf(a));bw.newLine();}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/568885.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot实现网上订餐系统项目【项目源码+论文说明】

基于springboot实现网上订餐系统演示 摘要 随着我国经济的飞速发展&#xff0c;人们的生活速度明显加快&#xff0c;在餐厅吃饭排队的情况到处可见&#xff0c;近年来由于新兴IT行业的空前发展&#xff0c;它与传统餐饮行业也进行了新旧的结合&#xff0c;很多餐饮商户开始通过…

关于SpringBoot你需要了解这些

文章目录 写在前面官网上是这么去描述springboot以及总结springboot特点的springBoot特点 spring核心流程简图Springboot常用注解springBoot自动装配原理手写如何自定义starterSpringBoot是如何启动tomcat的 写在前面 springBoot官网 官网上是这么去描述springboot以及总结spri…

数组的概述

数组的概述 为什么需要数组 需求分析1&#xff1a; 需要统计某公司50个员工的工资情况&#xff0c;例如计算平均工资、找到最高工资等。用之前知识&#xff0c;首先需要声明50个变量来分别记录每位员工的工资&#xff0c;这样会很麻烦。因此我们可以将所有的数据全部存储到一…

网际协议 - IP

文章目录 目录 文章目录 前言 1 . 网际协议IP 1.1 网络层和数据链路层的关系 2. IP基础知识 2.1 什么是IP地址? 2.2 路由控制 3. IP地址基础知识 3.1 IP地址定义 3.2 IP地址组成 3.3 IP地址分类 3.4 子网掩码 IP地址分类导致浪费? 子网与子网掩码 3.5 CIDR与…

一口气搞懂分库分表 12 种分片算法,大厂都在用

大家好&#xff0c;我是小富&#xff5e; 前言 本文是《ShardingSphere5.x分库分表原理与实战》系列的第五篇文章&#xff0c;我们一起梳理下ShardingSphere框架中的核心部分分片策略和分片算法&#xff0c;其内部针为我们提供了多种分片策略和分片算法&#xff0c;来应对不同…

开发组合:PHP+MySQL 同城社区小程序源码 同城便民信息发布系统源码 源码开源可二开含搭建教程

同城便民信息发布系统源码在提升信息发布效率、促进商家宣传、增强用户互动、实现信息聚合与分类管理、个性化定制与扩展以及数据统计与分析等方面发挥着重要作用。 今天小编给大家分享一个同城社区小程序源码、同城便民信息发布系统源码&#xff0c;开发组合PHPMySQL&#xf…

中间商赚差价?炒金该不该选伦敦金投资代理商?

近期&#xff0c;伦敦金价格受鲍威尔鸽派言论的影响&#xff0c;一度强势冲高突破2200大关&#xff0c;这不光是金价再度刷新历史的新高&#xff0c;而且也是金价首次突破2200。有这么好的涨势&#xff0c;自然很多投资者都想入场去炒伦敦金&#xff0c;但是他们入场的时候会面…

软件推荐 篇三十七:安卓软件推荐IP Tools「IP工具」:全面解析网络状态与管理的必备神器

引言&#xff1a; 随着互联网的普及&#xff0c;网络已经成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐&#xff0c;我们都需要通过网络来进行各种操作。然而&#xff0c;网络问题的出现往往会给我们带来诸多困扰。为了更好地管理和优化网络&#xff0c;我们…

SerpAPI - Search API

文章目录 关于 SerpAPIserpapi & google-search-resultshttp 请求示例&#xff1a; Python 调用示例Basic Examples in PythonSearch BingSearch BaiduSearch YahooSearch YouTubeSearch WalmartSearch eBaySearch NaverSearch Home DepotSearch Apple App StoreSearch Duc…

【中文视觉语言模型+本地部署 】23.08 阿里Qwen-VL:能对图片理解、定位物体、读取文字的视觉语言模型 (推理最低12G显存+)

项目主页&#xff1a;https://github.com/QwenLM/Qwen-VL 通义前问网页在线使用——&#xff08;文本问答&#xff0c;图片理解&#xff0c;文档解析&#xff09;&#xff1a;https://tongyi.aliyun.com/qianwen/ 论文v3. : 一个全能的视觉语言模型 23.10 Qwen-VL: A Versatile…

[Java基础揉碎]抽象类

目录 通过问题引出 介绍 关键点 细节 ​编辑 抽象类的最佳设计模式--模版设计模式 1.先用最容易想到的方法 2.分析问题&#xff0c;提出使用模板设计模式 通过问题引出 假如我们有个动物类, 动物都有eat吃的方法, 但是具体吃什么, 我们不知道, 因为是什么动物我们不知道…

创建AI智能体

前言 灵境矩阵是百度推出的基于文心大模型的智能体&#xff08;Agent&#xff09;平台&#xff0c;支持广大开发者根据自身行业领域、应用场景&#xff0c;选取不同类型的开发方式&#xff0c;打造大模型时代的产品能力。开发者可以通过 prompt 编排的方式低成本开发智能体&am…