设为首页 加入收藏

TOP

ZOJ Monthly, October 2010 ABEFI
2015-07-24 05:40:02 来源: 作者: 【 】 浏览:5
Tags:ZOJ Monthly October 2010 ABEFI

ZOJ 3406 Another Very Easy Task

#include 
  
   
#include 
   
     const int N = 100005; char s[N]; int main() { bool f = 0; int size = 0; char ch; while(scanf("%c", &ch)!=EOF) { if( !(ch >= 'a' && ch <='z') && !(ch >='A' && ch <= 'Z')) { if(size <= 2) { s[size] = '\0'; printf("%s", s); } else { printf("%c%d%c", s[0], size-2, s[size-1]); } size = 0; printf("%c", ch); } else { s[size++] = ch; } } return 0; }
   
  

ZOJ 3407 Doraemon's Cake Machine
#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        using namespace std; typedef long long ll; int Rand(int l,int r){ int ans = rand()%r+1; while(ans
       
         0) { cin >> n >> m; // n = Rand(1,6000000), m = Rand(0,10000); if(m == 0) { if(n == 1) puts("0"); else puts("-1"); continue; } if(m >= n) { puts("-1"); }else { ll d = 2 * (n-m) - 1; ll ans = -1; ans = 2 * m - n;// shu if(ans < 0) ans = -1; if(n==m+1)ans = 0; // heng for(ll i = 1; i * i <= d; i += 2) { if( d % i == 0 ) { ll a = (i + 1) / 2; ll b = (d / i - 1) / 2; ll c = m - a - b; if(c < 0) continue; if(ans == -1 || ans>c ){ // printf("%I64d %I64d %I64d %I64d\n", d, a, b, c); ans = c; } } } cout<
        
         

ZOJ 3410 Layton's Escape
#include 
          
           
#include 
           
             #include 
            
              #include 
             
               #include 
               #include 
               
                 #include 
                
                  #include 
                 
                   /* #include 
                  
                    #define _ ios_base::sync_with_stdio(0);cin.tie(0); using namespace std; int main() { return 0; } */ typedef long long ll; const ll Inf = (ll)(1e15); const int N = 25000 + 10; const int M = 5000 + 10; struct node { int cos, lim; }; node a[N]; ll d[2][M]; std::priority_queue
                   
                     Q; bool cmp(const node& i, const node& j) { return i.lim < j.lim; } int main() { int n, K, cnt; while (~scanf("%d%d", &n, &K)) { for (int i = 0; i < n; ++i) scanf("%d%d", &a[i].cos, &a[i].lim); std::sort(a, a + n, cmp); while (!Q.empty()) Q.pop(); cnt = 0; ll sum = 0; for (int i = 0; i < n; ++i) { sum += a[i].cos; Q.push(a[i].cos); while (sum > a[i].lim && !Q.empty()) { sum -= Q.top(); ++cnt; Q.pop(); } if (sum > a[i].lim || cnt >= K) { cnt = -1; break; } } printf("%d\n", cnt); } return 0; }
                   
                  
                 
                
               
             
            
           
          
ZOJ 3411 Special Special Judge
import java.io.*;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
import java.util.Scanner;

public class Main {
	BigInteger gcd(BigInteger a, BigInteger b) {
		BigInteger tmp;
		while(a.equals(BigInteger.ZERO)==false){
			b = b.mod(a);
			tmp = b;
			b = a;
			a = tmp;
		}
		return b;
	}
	
	public void work() {
		int n, m, a, b, x;
		BigInteger[][] d = new BigInteger[55][55];
		BigInteger up, down, v;
		
		while (cin.hasNext()) {
			n = cin.nextInt();
			m = cin.nextInt();
			a = cin.nextInt();
			b = cin.nextInt();
			v = BigInteger.valueOf(b - a + 1);
			for (int i = 0; i <= n; ++i)
				for (int j = 0; j <= m; ++j)
					d[i][j] = BigInteger.ZERO;
			d[0][0] = BigInteger.ONE;
			for (int i = 0; i < n; ++i) {
				x = cin.nextInt();
				for (int j = 0; j <= m; ++j)
					if (d[i][j].compareTo(BigInteger.ZERO) > 0)
						for (int z = a; z <= b; ++z)
							if (Math.abs(x - z) + j <= m) {
								d[i + 1][Math.abs(x - z) + j] = d[i + 1][Math
										.abs(x - z) + j].add(d[i][j]);
							}
			}
			up = BigInteger.ZERO;
			for (int i = 0; i <= m; ++i)
				up = up.add(d[n][i]);
			down = BigInteger.ONE;
			for (int i = 1; i <= n; ++i)
				down = down.multiply(v);
			v = gcd(up, down);
			up = up.divide(v);
			down = down.divide(v);
			out.println(up + "/" + down);
		}
		out.close();
	}

	Main() {
		cin = new Scanner(System.in);
		out = new PrintWriter(System.out);
	}

	public static void main(String[] args) {
		Main e = new Main();
		e.work();
	}

	public Scanner cin;
	public PrintWriter out;

}

ZOJ 3414 Trail Walk

#include 
          
           
#include 
           
             #include 
            
              #include 
             
               using namespace std; #define eps (1e-8) const int N = 100005; bool Is0(double x){ return (x>0?x:-x)
              
               =m)break; // last.put(); double t = dis(last, a[i]); if(t
               
                

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇对数组按照某一基准进行整理 下一篇UVA - 812 Trade on Verweggistan

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: