zoukankan      html  css  js  c++  java
  • Codeforces Round #335 (Div. 2)

    水 A - Magic Spheres

    这题也卡了很久很久,关键是“至少”,所以只要判断多出来的是否比需要的多就行了。

    #include <bits/stdc++.h>
    using namespace std;
    
    #define lson l, mid, o << 1
    #define rson mid + 1, r, o << 1 | 1
    typedef long long ll;
    const int N = 1e5 + 5;
    const int INF = 0x3f3f3f3f;
    
    int main(void)	{
    	int a, b, c;
    	int x, y, z;
    	scanf ("%d%d%d", &a, &b, &c);
    	scanf ("%d%d%d", &x, &y, &z);
    	bool flag = true;
    	if (a < x || b < y || c < z)	flag = false;
    	int s1 = a + b + c;
    	int s2 = x + y + z;
    	if (flag)	puts ("Yes");
    	else if (s1 < s2)	puts ("No");
    	else	{
    		int less = 0, more = 0;
    		if (a < x)	less += x - a;
    		else	{
    			more += (a - x)	/ 2;
    		}
    		if (b < y)	less += y - b;
    		else	{
    			more += (b - y) / 2;
    		}
    		if (c < z)	less += z - c;
    		else	{
    			more += (c - z) / 2;
    		}
    		if (more >= less)	puts ("Yes");
    		else	puts ("No");
    	}
    
    	return 0;
    }
    

    模拟 B - Testing Robots

    题意:机器人按照指令走,问有几个格子能使的在第i步使机器人爆炸。

    分析:没什么难的,走过了就vis掉。比赛时C做的人多,B没读懂放弃了。。

    #include <bits/stdc++.h>
    using namespace std;
    
    #define lson l, mid, o << 1
    #define rson mid + 1, r, o << 1 | 1
    typedef long long ll;
    const int N = 1e5 + 5;
    const int INF = 0x3f3f3f3f;
    char str[N];
    bool vis[505][505];
    int ans[N];
    int n, m, x, y;
    
    int main(void)	{
    	scanf ("%d%d%d%d", &n, &m, &x, &y);
    	scanf ("%s", str + 1);
    	int len = strlen (str + 1);
        str[0] = '#';   ans[len] = n * m;
    	for (int i=0; i<len; ++i)	{
    		if (i != 0)	{
    			if (str[i] == 'U' && x > 1)	x--;
    			else if (str[i] == 'D' && x < n)	x++;
    			else if (str[i] == 'L' && y > 1)	y--;
    			else if (str[i] == 'R' && y < m)   y++;
    		}
            if (vis[x][y])  ans[i] = 0;
            else    {
                vis[x][y] = true;
                ans[i] = 1; ans[len]--;
            }
    	}
        for (int i=0; i<=len; ++i)  {
            printf ("%d%c", ans[i], i == len ? '
    ' : ' ');
        }
    
    	return 0;
    }
    

      

    构造+贪心 C - Sorting Railway Cars

    题意:每一辆车可以去头或者尾,问最少几次能使排列有序

    分析:贪心的思想,把相邻数字(LIS的不一定是相邻的,有问题)排列已经有序的不动,其他的都只要动一次就能有序。

    #include <bits/stdc++.h>
    using namespace std;
    
    #define lson l, mid, o << 1
    #define rson mid + 1, r, o << 1 | 1
    typedef long long ll;
    const int N = 1e5 + 5;
    const int INF = 0x3f3f3f3f;
    int a[N], p[N];
    
    int main(void)	{
    	int n;	scanf ("%d", &n);
    	for (int i=1; i<=n; ++i)	{
    		scanf ("%d", &a[i]);	p[a[i]] = i;
    	}
    	int ans = 1, len = 1;
    	for (int i=2; i<=n; ++i)	{
    		if (p[i] > p[i-1])	len++;
    		else	len = 1;
    		ans = max (ans, len);
    	}
    	printf ("%d
    ", n - ans);
    
    	return 0;
    }
    

      

    编译人生,运行世界!
  • 相关阅读:
    C# 6.0
    C# 4.0
    C# 5.0
    C# 3.0
    C# 2.0
    C# 1.0(2002)
    字典树Trie
    Hadoop——生态体系
    程序是怎样跑起来的
    Redis实战(十七)Redis各个版本新特性
  • 原文地址:https://www.cnblogs.com/Running-Time/p/5042450.html
Copyright © 2011-2022 走看看