codeforces 498 div3(a-e java)

题目链接
A:水题

package codeforces498;

import java.util.Scanner;

public class testA {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int a[]=new int[n];
		for(int i=0;i<n;i++)
		{
			a[i]=sc.nextInt();
			if(a[i]%2==0)a[i]--;
		}
		for(int i=0;i<n;i++)
		{
			if(i==n-1)System.out.println(a[i]);
			else System.out.print(a[i]+" ");
		}
	}
}

B

package codeforces498;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class testB {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int k=sc.nextInt();
		int a[]=new int[n];
		List<String> list=new ArrayList();
		for(int i=0;i<n;i++)
		{
			a[i]=sc.nextInt();
		}
        int b[]=a.clone();
        Arrays.sort(b);
        int value=0;
        for(int i=b.length-1;i>b.length-1-k;i--)
        {
        	list.add(b[i]+"");
        	value+=b[i];
        }
        System.out.println(value);
        int index=-1;
        for(int i=0;i<n;i++)
        {
        	if(list.contains(a[i]+""))
        	{
        	  if(list.size()==1) {System.out.print(n-index-1);break;}
        	  else
        	  System.out.print((i-index)+" ");
        	  index=i;
        	  list.remove(a[i]+"");
        	}
        }
	}
}

C:

package codeforces498;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class testC {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
	    int n=sc.nextInt();
	    int a[]=new int[n];
	    long first[]=new long[n];
	    Map<Long,Integer>map=new HashMap();
	    map.put((long) 0, 0);
	    for(int i=0;i<n;i++)
	    {
	    	a[i]=sc.nextInt();
	    	if(i==0)first[i]=a[i];
	    	else
	    		first[i]=first[i-1]+a[i];
	    	map.put(first[i],i );
	    }
	    long last[]=new long[n+1];
	   
	    for(int i=n-1;i>0;i--)
	    {
	    	last[i]=last[i+1]+a[i];
	    	
	    }
	    for(int i=1;i<n+1;i++)
	    {
	    	if(map.containsKey(last[i])) {if(map.get(last[i])<i) {System.out.println(last[i]);break;}}
	    }
	    
	}

}

D:

package codeforces498;

import java.util.Scanner;

public class testD {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		String a=sc.next();
		String b=sc.next();
		char a1[]=a.toCharArray();
		char b1[]=b.toCharArray();
		boolean bool[]=new boolean[a.length()];
		for(int i=0;i<n;i++)//标记相同的不动。
		{
			if(a1[i]==b1[i]) {bool[i]=true;}
		}
		int time=0;
		for(int i=0;i<n;i++)
		{
			if(!bool[i])
			{
				if(!bool[n-i-1])
				{
					 if(b1[i]==b1[n-i-1])
						{
							char t=a1[i];
							a1[i]=b1[i];
							b1[i]=t;
							//time++;
							
						}
					if(a1[i]==b1[n-i-1])
					{
						char t=a1[i];
						a1[i]=a1[n-1-i];
						a1[n-1-i]=t;
						bool[n-1-i]=true;
					}
					 if(b1[i]==a1[n-1-i])
					{
						char t=a1[i];
						a1[i]=a1[n-1-i];
						a1[n-1-i]=t;
						bool[i]=true;
					}					
				}
			}
		}	
		for(int i=0;i<n;i++)
		{
			if(!bool[i]&&a1[i]!=b1[i])
					{time++;}
		}
		System.out.println(time);
	}
}

E:

package codeforces498;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

public class testE {
	static boolean bool=false;
    static int value,number=1;
    static int a[];//打表的值,通过位置反应值
    static int b[];//
  //  static Map<Integer,Integer>map;//通过值反应对应位置
    static int end[];
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int q=sc.nextInt();
	//	map=new HashMap();
		 a=new int[n+1];
		 b=new int[n+1];
		 end=new int[n+1];
		tree t[]=new tree[n+1];
		for(int i=0;i<n+1;i++)
		{
			t[i]=new tree(i);
		}
		
		for(int i=1;i<n;i++)
		{
			int team=sc.nextInt();
			t[team].list.add(i+1);
			
		}
		dfs(1,t);
		for(int i=0;i<q;i++)
		{
			bool=false;
			int first1=sc.nextInt();
			value=sc.nextInt();//数量
			int fi=b[first1];//位置编号			
			if(fi+value-1>end[first1]) {System.out.println(-1);}
			else  {System.out.println(a[fi+value-1]);}
			
		}

	}
	private static void dfs(int first, tree[] t) {
		   a[number]=first;
			//map.put(first, number++);
			b[first]=number++;
			for(int i=0;i<t[first].list.size();i++)
			{
				
				dfs(t[first].list.get(i),t);
			}
			end[first]=number-1;
	}
	static class tree
	{
		int index;
		
		List<Integer> list=new ArrayList();
		public tree() {}
		public tree(int index)
		{
			this.index=index;
		}
		public tree(int index,ArrayList list)
		{
			this.index=index;
			this.list=list;
		}
	}
}

Big sai CSDN认证博客专家 数据结构与算法 爬虫 Java
原创公众号:「bigsai」,回复【bigsai】获取珍藏pdf书籍资源,回复【进群】即可加入leetcode打卡群。
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值