NightEpiphany @ 2024-03-29 22:55:40
package exercise.example;
import java.io.*;
import java.util.*;
public class P8939 {
public static void main(String[] args) throws IOException {
Scanner inp=new Scanner(System.in);
int n=inp.nextInt(),q=inp.nextInt();
ArrayList<Integer> a=new ArrayList<>();
for (int i=0;i<n;i++)
a.add(inp.nextInt());
System.out.println();
for(int i=0;i<q;i++){
int operation = inp.nextInt();
if(operation == 1)
function1(inp.nextInt(), a);
else if(operation == 2)
function2(inp.nextInt(), a);
}
System.exit(0);
}
public static void function1(int m,ArrayList<Integer> a){
if(!a.contains(m))
System.out.println(-1);
else {
a.remove((Integer) m);
ArrayList<Integer> b=new ArrayList<>();
ArrayList<Integer> c=new ArrayList<>();
b=permutationFunc(a,c,0);
b.sort(Comparator.naturalOrder());
System.out.println(b.get(0));
}
}
public static void function2(int m,ArrayList<Integer> a){
a.add(m);
ArrayList<Integer> b=new ArrayList<>();
ArrayList<Integer> c=new ArrayList<>();
b=permutationFunc(a,c,0);
b.sort(Comparator.naturalOrder());
System.out.println(b.get(0));
}
public static int sigmaResult(ArrayList<Integer> a){
int result=Math.abs(a.get(0)-a.get(a.size()-1));
for(int i=a.size()-1;i>=1;i--)
result+=Math.abs(a.get(i)-a.get(i-1));
return result;
}
public static ArrayList<Integer> permutationFunc(ArrayList<Integer> list,ArrayList<Integer> b,int start)
{
if(start==list.size()-1) {
b.add(sigmaResult(list));
}
for(int i=start;i<=list.size()-1;i++)
{
Swap(list,i,start);
permutationFunc(list,b,start+1);
Swap(list,i,start);
}
return b;
}
public static void Swap(ArrayList<Integer> list,int i,int j) {
int temp;
temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
by a987654 @ 2024-03-30 20:43:22
这,至于吗?
by woaiWANYS1123 @ 2024-03-31 10:31:04
不是哥们至于吗
by ___LuXun___ @ 2024-04-04 22:08:53
简单点不行吗
by Never_Hate @ 2024-04-05 12:30:21
甚么语言的?(O_o)??
by fire_star @ 2024-04-13 22:09:15
一个a+b你至于吗???
by Jack_John_Guzon @ 2024-04-21 17:58:46
@wlwl123bc java的
by Jack_John_Guzon @ 2024-04-21 18:05:59
@NightEpiphany 你这内存绝对爆啊!简单点不行吗?
#include<bits/stdc++.h>
#define tin int//个人习惯防手滑
#define itn int
#define tni int
#define nit int
#define nti int
#define pritnf printf
#define scnaf scanf
#define ll long long
using namespace std;
#define maxa 504
itn i,sa,sb,m;//sa是a的长度,我们(划掉)sb是b的长度,m是a与b中的较大长度
short x[maxa]={0},y[maxa]={0};//强迫症省空间,开short。x为较长加数,y为剩下那个。x[1]、y[1]为个位,x[2]、y[2]为十位,以此类推。
string a,b;
itn main()
{
cin>>a>>b;//cin是string最好的搭档
sa=a.size();//为以后方便取a的长度
sb=b.size();//为以后方便取b的长度
m=max(sa,sb);//为以后方便取a、b较长长度
//
if(sa>sb)//如果a是较长加数
{
for(i=1;i<=sa;++i)//把a遍历一遍
{
x[i]=a[sa-i]-48;//把a赋给x
}
for(i=1;i<=sb;++i)//把较短加数一位一位加上
{
x[i]+=b[sb-i]-48;//a一位一位加上b
}
}
else//上面反过来
{
for(i=1;i<=sb;++i)
{
x[i]=b[sb-i]-48;
}
for(i=1;i<=sa;++i)
{
x[i]+=a[sa-i]-48;
}
}
//
for(i=1;i<=m;++i)//十进制处理
{
if(x[i]>=10)//如果需要进位
{
x[i]-=10;//这一位留个位
++x[i+1];//下一位进一
}
}
//聪明的孩子会发现此时如999+1情况比最高位高一位的地方有个1输出时将被忽略
if(x[m+1]>0)//最高位进位特判
{
++m;//多输出一位,这样输出时就把最高处孤独的1考虑到了
}
//
for(i=m;i>=1;--i)//反着输出,注意现在的m有可能已经加1,999+1不会输出000。
{
cout<<x[i];//一位一位
}
return 0;
}//本代码已进行防抄袭处理·^v·^
by Jack_John_Guzon @ 2024-04-21 18:10:04
(手动滑稽)
by Cute_QiQi @ 2024-04-26 19:58:55
@Jack_Shu 他是Java,你是c++!
@Jack_Shu 他是Java,你是c++!
@Jack_Shu 他是Java,你是c++!
@Jack_Shu 他是Java,你是c++!
@Jack_Shu 他是Java,你是c++!
@Jack_Shu 他是Java,你是c++!
@Jack_Shu 他是Java,你是c++!
@Jack_Shu 他是Java,你是c++!
by shimucheng @ 2024-04-26 20:48:31
太牛了