第六届山东省ACM/ICPC J Single Round Math

【类型】

java大整数瞎搞,话说占用内存好高啊.

【题目链接】

http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/3260.html

【Code】

import java.util.*;
import java.math.*;
public class J{
    public static void main(String args[]){
        Scanner cin=new Scanner(System.in);
        int T;
        BigInteger a,b,c=new BigInteger(“11”),d=new BigInteger(“0”);
        T=cin.nextInt();
        while((T–)!=0){
            a=cin.nextBigInteger();
            b=cin.nextBigInteger();
            if(a.compareTo(c)<0 || b.compareTo(c)<0) System.out.println(“NO”);
            else if(a.compareTo(b)!=0) System.out.println(“NO”);
            else if(d.compareTo(a.remainder(c))==0) System.out.println(“YES”);
            else System.out.println(“NO”);
        }
    }
}

第六届山东省ACM/ICPC B Lowest Unique Price

【类型】

set,映射

【Tip】

题目上给的数据范围是 x∈[1,106]

但是我写代码时把映射空间开到100000才A了过去.?????? WTF??

另外,一开始我用map动态搜索,输出时遍历查找最少价值为一次的结果,果不其然,TLE.

所以改成了set动态更新第一个节点.即最小点.实现不需要遍历直接插入瞎搞的算法.

PS:真心搞不懂为啥映射数组要开10W啊???????

【Code】

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
#define cle(a,val) memset(a,(val),sizeof(a))
#define SI(N) scanf(“%d”,&(N))
#define SII(N,M) scanf(“%d %d”,&(N),&(M))
#define SIII(N,M,K) scanf(“%d %d %d”,&(N),&(M),&(K))
#define rep(i,b) for(int i=0;i<(b);i++)
#define rez(i,a,b) for(int i=(a);i<=(b);i++)
#define red(i,a,b) for(int i=(a);i>=(b);i–)
const ll LINF = 0x3f3f3f3f3f3f3f3f;
#define PU(x) puts(#x);
#define PI(A) cout<<(A)<<endl;
#define DG(x) cout<<#x<<“=”<<(x)<<endl;
#define DGG(x,y) cout<<#x<<“=”<<(x)<<” “<<#y<<“=”<<(y)<<endl;
#define DGGG(x,y,z) cout<<#x<<“=”<<(x)<<” “<<#y<<“=”<<(y)<<” “<<#z<<“=”<<(z)<<endl;
#define PIar(a,n) rep(i,n)cout<<a[i]<<” “;cout<<endl;
#define PIarr(a,n,m) rep(aa,n){rep(bb, m)cout<<a[aa][bb]<<” “;cout<<endl;}
const double EPS = 1e-9 ;

int reg[100000];
char readchar(){
char c=getchar();
while(c!=’b’ && c!=’q’ && c!=’c’) c=getchar();
return c;
}

int main(){
int T;
scanf(“%d”,&T);
while(T–){
set<int> se;
cle(reg,0);
int N;
SI(N);
rep(i,N){
char a;
int b;
a=readchar();
if(a==’b’){
SI(b);
reg[b]++;
if(reg[b]==1) se.insert(b);
else se.erase(b);
}
if(a==’c’){
SI(b);
if(reg[b]>0){
reg[b]–;
if(reg[b]==1) se.insert(b);
else se.erase(b);
}
}
if(a==’q’){
if(se.empty()) puts(“none”);
else printf(“%d\n”,*(se.begin()));
}
}

}
return 0;
}

第六届山东省ACM/ICPC A Nias and Tug-of-War

【类型】

重载小于号,排序

【题目链接】

http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/3251.html

【Code】

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
#define cle(a,val) memset(a,(val),sizeof(a))
#define SI(N) scanf(“%d”,&(N))
#define SII(N,M) scanf(“%d %d”,&(N),&(M))
#define SIII(N,M,K) scanf(“%d %d %d”,&(N),&(M),&(K))
#define rep(i,b) for(int i=0;i<(b);i++)
#define rez(i,a,b) for(int i=(a);i<=(b);i++)
#define red(i,a,b) for(int i=(a);i>=(b);i–)
const ll LINF = 0x3f3f3f3f3f3f3f3f;
#define PU(x) puts(#x);
#define PI(A) cout<<(A)<<endl;
#define DG(x) cout<<#x<<“=”<<(x)<<endl;
#define DGG(x,y) cout<<#x<<“=”<<(x)<<” “<<#y<<“=”<<(y)<<endl;
#define DGGG(x,y,z) cout<<#x<<“=”<<(x)<<” “<<#y<<“=”<<(y)<<” “<<#z<<“=”<<(z)<<endl;
#define PIar(a,n) rep(i,n)cout<<a[i]<<” “;cout<<endl;
#define PIarr(a,n,m) rep(aa,n){rep(bb, m)cout<<a[aa][bb]<<” “;cout<<endl;}
const double EPS = 1e-9 ;

struct star{
    double height,weight;
    bool operator<(const star A)const{
        return height<A.height;
    }
}person[200];

int main(){
    int T,N;
    double ansr=0.0,ansb=0.0;
    scanf(“%d”,&T);
    while(T–){
        ansr=0.0,ansb=0.0;
        scanf(“%d”,&N);
        rep(i,N)
            scanf(“%lf %lf”,&person[i].height,&person[i].weight);
        sort(person,person+N);
        int con=1;
        rep(i,N){
            if(con==1){
                con=0;
                ansr+=person[i].weight;
            }else{
                con=1;
                ansb+=person[i].weight;
            }
        }
        if(ansb>ansr)
            printf(“blue\n”);
        else if(ansr>ansb)
            printf(“red\n”);
        else   printf(“fair\n”);
    }
    return 0;
}