一些三年前写的代码 现在看看确实是一些回忆

Luogu P1018


#include <bits/stdc++.h>
using namespace std;
typedef char strings[510] ;
string s;
string f[510][10];
int n,k;
string mul(string a,string b)
{
    int len1,len2,k = 0 ;
    len1=len2= 51 ;
    int A[510],B[510],C[510] ;
    for (int i= 0 ;i<len1;i++) A[i] = a[len1- i-1] - 48 ; 
    for (int i= 0; i<len2;i++) B[i] = b[len2- i-1] - 48 ;

    memset(C,0,sizeof(C)) ;
    for (int i= 0;i<len1;i++) 
        for (int j= 0 ;j<len2;j++) {
            if (i+j>40) continue ;
            C[i+j ] += A[i] * B[j] ; 
        
        }
    for (int i = 0 ;i<50;i++) 
    {
        C[i+1] += C[i] / 10 ;
        C[i] = C[i] % 10 ;   
    }

    for (int i= 0 ;i<51;i++) a[50-i] = C[i] + 48 ;

    return a ;
}
string max(string a, string b)
{
    return a>b?a:b ;
    
}
string cs(int ks,int js)
{
    strings sum ;
    for (int i= 0;i<51;i++) sum[i] = '0' ;sum[51] = '\0' ;

    int t= 50 ;
    for(int i=js;i>=ks;i--) sum[t--]=s[i] ;

    return sum;
}
void write(string s) 
{
    int i= 0 ;
    while (s[i] =='0') i++ ;
    for (int j= i;j<51;j++) cout<< s[j] ;
    cout<<endl;
}
int main()
{
    cin>>n>>k;
    cin>> s ;
    
    for(int i=0;i<n;i++)f[i][0]=cs(0,i);
   
    for (int i= 0 ;i<n;i++)
        for (int j= 1;j<=i;j++)
            for (int t= 1 ;t<=k;t++)
            f[i][t] = max(f[i][t],mul(f[j-1][t-1], cs(j,i)) )  ;
    write (f[n-1][k] );
}

三年前写过的一道练习题

加分二叉树 LuoguP1040



#include<bits/stdc++.h>
using namespace std;
const int N=40;  
int f[N][N];
int rt[N][N];
int v[N];	
int n;
void way(int l,int r){
	if(l>r) return ;
	cout<<rt[l][r]<<" ";
	way(l,rt[l][r]-1);
	way(rt[l][r]+1,r);
}
int main(){

	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>v[i];
		f[i][i]=v[i];
		rt[i][i]=i;	
	}
	for(int i=2;i<=n;i++){
		for(int left=1;left+i-1<=n;left++){
			int right=left+i-1;
			if(f[left][right]<v[left]+f[left+1][right]){
				f[left][right]=v[left]+f[left+1][right];
				rt[left][right]=left;
			}
			if(f[left][right]<v[right]+f[left][right-1]){
                f[left][right]=v[right]+f[left][right-1];
                rt[left][right] = right;	
            }
            for(int j=left+1;j<=right-1;j++){
                if(f[left][j-1]*f[j+1][right]+v[j] > f[left][right]){
                    f[left][right] = f[left][j-1]*f[j+1][right]+v[j];
                    rt[left][right]=j;
                }
			}
		}
	}
	cout<<f[1][n]<<endl;
	way(1,n);
	return 0;
}

APCSA课上的奇妙入门难度lab.....。。。。。。 和OI比起来 普通人体系的CS确实是很亲民的。。。。 就是让你模拟你个自动售货机 要求格式比较严

import java.util.*;
public class cokeMS{
    public static void main(String[] args){
        Scanner scan=new Scanner (System.in);
        int cash=0;
        for(;;){
            System.out.println("Have a Coke! Price: $1.25");
            while(cash<125){
                System.out.print("Insert coin:");
                double in=scan.nextDouble();
                int input=(int)in;
                if(input==5||input==10||input==25||input==100){
                    cash+=input;
                    System.out.println(" Amount entered: "+cash+" cents.");
                }    
                else{
                    System.out.println(" ** Rejecting "+input+" cent coin. ");
                }
            }
            System.out.println("Please make your selection: \n 1 - Coke \n 2 - Coke Zero \n 3 - Caffeine Free Diet Coke ");
            
            for(;;){
                System.out.print("Your choice: ");
                int c=scan.nextInt();
                if(c==1){
                    cash-=125;
                    System.out.println(" Dispensing Coke");
                    while(cash>0){
                        if(cash>=25){
                            cash-=25;
                            System.out.println(" Returning quarter.");
                            continue;
                        }
                        if(cash>=10){
                            cash-=10;
                            System.out.println(" Returning dime.");
                            continue;
                        }
                        if(cash>=5){
                            cash-=5;
                            System.out.println(" Returning nickel.");
                            continue;
                        }
                    }
                    break;
                }
                if(c==2){
                    cash-=125;
                    System.out.println(" Dispensing Coke Zero");
                    while(cash>0){
                        if(cash>=25){
                            cash-=25;
                            System.out.println(" Returning quarter.");
                        }
                        else if(cash>=10){
                            cash-=10;
                            System.out.println(" Returning dime.");
                        }
                        else if(cash>=5){
                            cash-=5;
                            System.out.println(" Returning nickel.");
                        }
                    }
 
                    break;
                }    
                if(c==3){
                    cash-=125;
                    System.out.println(" Dispensing Caffeine Free Diet Coke ");
                    while(cash>0){
                        if(cash>=25){
                            cash-=25;
                            System.out.println(" Returning quarter.");
                            continue;
                        }
                        if(cash>=10){
                            cash-=10;
                            System.out.println(" Returning dime.");
                            continue;
                        }
                        if(cash>=5){
                            cash-=5;
                            System.out.println(" Returning nickel.");
                            continue;
                        }
                    }
                    break;
                }
                else{
                    System.out.println(" ** No such beverage. Choose another. ");
                    continue;
                }
            }
        }
    }
}

当你走在大马路上,发生了一个吵架,或者斗殴,或者车祸。看热闹的人永远是最多的,为什么呢?首先,看热闹的成本很少,除非你被砸死,而且能图一乐, 周围的群众也可以过一把”裁判的瘾“,很多人想做上帝。 而且可以显得平时平平无奇的人,在这个时候很有理性和智慧。所以人们非常喜欢看热闹,无论是图一乐、还是落井下石、还是理中客、还是当圣母假惺惺。都能带给他们无上的快感。

有人说“言多必失”,实际上确实是这样,言语并不能带来什么实际性的东西,但是有的时候会带来不好的后果。 如果你常常以“夸”的姿态来说话,确实不容易出问题,但是会让人认为你讨厌。 如果你常常以“真实”的姿态来说话,有的时候别人不开心就会出问题。 但无论是“夸”还是“真实”,都不会带来什么实质性性的好处,尤其是在社交媒体或者是网络上,有的时候还会招来麻烦,或者被利用。 所以最好的方法是什么呢? 正所谓“三缄其口” 少说,或者不说,多听,多看,多想,在评判一件事物之前一定要对这个事物有了解,不要对待任何事情都以玩笑的态度来对待。

分享几张图片 11 22 33

没有永远的神。 随着独立思考和知识的增多,你会逐渐发现有的同龄人或者老师或者权威,并不是一直正确的。于是有的人开始因为一个点便全盘否认他,对他说的话完全不听。 也有的人坚信他是完全正确的,对他说的话完全的信服并且改变自己原先的观点。 但是我觉得没有完美无瑕的东西,信也不能全信,也不能不信。

所有人对所有人在不同地点所展现出来的样子是不同的。但这也是不可避免的,也是人类这一生物为了社群性生活而诞生出的劣根性之一。但这一特性没有什么不好,只要其中一方不依据某种途径得知了他人对待自己的不同评价,这一特性会让人与人之间,至少在表面上,十分和谐。