• Codeforces Round #330 (Div. 2)


    C题题目出错了,unrating,2题就能有很好的名次,只能呵呵了。

    水 A - Vitaly and Night

    /************************************************
    * Author        :Running_Time
    * Created Time  :2015/11/8 星期日 22:41:11
    * File Name     :A.cpp
     ************************************************/
    
    #include <bits/stdc++.h>
    using namespace std;
    
    #define lson l, mid, rt << 1
    #define rson mid + 1, r, rt << 1 | 1
    typedef long long ll;
    const int N = 1e5 + 10;
    const int INF = 0x3f3f3f3f;
    const int MOD = 1e9 + 7;
    const double EPS = 1e-10;
    const double PI = acos (-1.0);
    int a[110][220];
    
    int main(void)    {
    	int n, m;	cin >> n >> m;
    	for (int i=1; i<=n; ++i)	{
    		for (int j=1; j<=2*m; ++j)	cin >> a[i][j];
    	}
    	int ans = 0;
    	for (int i=1; i<=n; ++i)	{
            for (int j=1; j<=2*m-1; j+=2)	{
                if (a[i][j] == 1 || a[i][j+1] == 1)	ans++;
            }
    	}
    	cout << ans;
    
       //cout << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.
    ";
    
        return 0;
    }
    

    数学 B - Pasha and Phone

    题意:n个数字分成n/k块,每块有k个数字,问n个数字,其中每一块第一个数字不是b[i]且该k个数字组成的数字能整除a[i]的方案数

    分析:直接说方法吧,最大的数字比如999999除以a[i]就是所有在99999范围内a[i]的倍数,然后减去以b[i]开头的那些数字就是一块的方案数。我脑子没转过弯,用乘法一个一个乘,当然超时,怎么没想到除呢,还想用DP? (a[i] < 10 ^ k),(卒

    /************************************************
    * Author        :Running_Time
    * Created Time  :2015/11/8 星期日 22:41:14
    * File Name     :B.cpp
     ************************************************/
    
    #include <bits/stdc++.h>
    using namespace std;
    
    #define lson l, mid, rt << 1
    #define rson mid + 1, r, rt << 1 | 1
    typedef long long ll;
    const int N = 1e5 + 10;
    const int INF = 0x3f3f3f3f;
    const int MOD = 1e9 + 7;
    const double EPS = 1e-10;
    const double PI = acos (-1.0);
    ll a[N], b[N];
    
    ll get_max(int k)	{
        ll ret = 0;
        for (int i=1; i<=k; ++i)	{
    		ret = ret * 10 + 9;
        }
        return ret;
    }
    
    ll get_b_max(ll x, int k)	{
    	ll ret = x;
    	for (int i=1; i<k; ++i)	{
    		ret = ret * 10 + 9;
    	}
    	return ret;
    }
    
    ll get_b_min(ll x, int k)	{
    	ll ret = x;
    	for (int i=1; i<k; ++i)	{
    		ret = ret * 10;
    	}
    	return ret;
    }
    
    ll multi_mod(ll a, ll b)	{
        ll ret = 0;
        while (b)	{
    		if (b & 1)	{
    			ret += a;
    			if (ret >= MOD)	ret -= MOD;
    		}
    		b >>= 1;	a <<= 1;
    		if (a >= MOD)	a -= MOD;
        }
        return ret;
    }
    
    int main(void)    {
        int n, k;	cin >> n >> k;
    	int m = n / k;
    	for (int i=1; i<=m; ++i)	{
    		cin >> a[i];
    	}
    	for (int i=1; i<=m; ++i)	{
    		cin >> b[i];
    	}
    	ll ans = 1, mx = get_max (k);
    	for (int i=1; i<=m; ++i)	{
            ll cnt = mx / a[i] + 1;
            ll bmn = get_b_min (b[i], k), bmx = get_b_max (b[i], k);
            cnt -= (bmx / a[i] - bmn / a[i]);
            if (bmn % a[i] == 0)    cnt--;
            ans = multi_mod (ans, cnt);
    	}
    	cout << ans << endl;
    
       //cout << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.
    ";
    
        return 0;
    }
    

      

    编译人生,运行世界!
  • 相关阅读:
    mini2440烧写nor flash
    mini2440系统引导(五)串口UART
    mini2440系统引导(四)存储控制器
    mini2440系统引导(三)当前状态寄存器CPSR
    mini2440系统引导(二)中断寄存器
    mini2440系统引导(一)看门狗
    filebeat版本问题导致logstash无法处理接收到的日志
    kernel: possible SYN flooding on port 80. Sending cookies
    grok正则
    【转载】kafka 基础知识
  • 原文地址:https://www.cnblogs.com/Running-Time/p/4949075.html
Copyright © 2020-2023  润新知