版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/yew1eb/article/details/25609981

A Points and Segments (easy)

 智商题。(智商捉急~)

/***********************************************************
*分析:仅仅要按Xi从小到大染成1010101010... ,
*1、0间隔的的序列就能保证对于随意区间[l, r]中1的个数和0的个数之差小于等于1。
*注意:因为输入的Xi可能是无序的。全部要两次排序处理。
**********************************************************/
#include <cstdio>
#include <algorithm>
using namespace std; const int maxn = 200 + 5; struct node {
int id;
int x;
int val;
};
node a[maxn];
int n, m; bool cmp_x(const node &a,const node &b)
{
return a.x < b.x;
}
bool cmp_id(const node &a,const node &b)
{
return a.id<b.id;
}
int main()
{
int i, l, r;
scanf("%d%d",&n,&m);
for(i=0; i<n; ++i)
{
scanf("%d",&a[i].x);
a[i].id = i;
}
for(i=0; i<m; ++i)
scanf("%d%d",&l, &r);
sort(a, a + n, cmp_x);
for(i=0; i<n; ++i)
a[i].val = i&1;
sort(a, a + n, cmp_id);
for(i=0; i<n; ++i)
printf("%d ", a[i].val); return 0;
}

B Balls Game

枚举

/************************************************
*分析:枚举插入点,然后用循环模拟消除操作
************************************************/
#include <stdio.h>
int n, k, x;
int a[100+5]; int main()
{
int i, l, r, cnt, ret, ans = 0;
scanf("%d%d%d",&n, &k, &x);
for(i=0; i<n; ++i)
scanf("%d",&a[i]); for(i=0; i<n; ++i)
if(a[i]==x)
{
l = r = i;
cnt = 0;
while(a[l] == a[r])
{
ret = 2;
while(l > 0 && a[l-1] == a[l]) { l--; ret++;}
while(r < n-1 && a[r+1] == a[r]) {r++; ret++;}
--l; ++r;
if(ret<3) break;
cnt += ret;
if(l < 0 || r >= n) break;
}
if(cnt-1 > ans) ans = cnt-1;
}
printf("%d\n", ans);
return 0;
}

C Xor-tree

建树后DFS

/******************************
* 分析:题意简单
* 在树上进行简单的操作
******************************/
#include <cstdio>
#include <vector>
using namespace std; const int maxn = 100000 + 10;
vector<int> Edge[maxn];
int cnt = 0, ans[maxn];
int n, a[maxn], b[maxn]; void dfs(int rt, int pre, int p1, int p2)
{
if( a[rt]^ p1 != b[rt])
{
ans[cnt++] = rt;
p1 = 1- p1;
} for(int i=0; i<Edge[rt].size(); ++i)
{
int &e = Edge[rt][i];
if(e == pre) continue;
dfs(e, rt, p2, p1);
}
} int main()
{
int i, x, y;
scanf("%d",&n);
for(i=1; i<n; ++i)
{
scanf("%d%d",&x,&y);
Edge[x].push_back(y);
Edge[y].push_back(x);
}
for(i=1; i<=n; ++ i) scanf("%d",&a[i]); for(i=1; i<=n; ++i) scanf("%d",&b[i]);
dfs(1, -1, 0, 0);
printf("%d\n", cnt);
for(i=0; i<cnt; ++i)
printf("%d\n", ans[i]);
return 0;
}

D Working out

先递推出每个点(i,j)到四个顶点{(n,m), (n,1), (1,m), (1,1) }的最大权值和。 然后枚举交点。 对于每个交点仅仅有例如以下图两种情况满足题意仅仅有一个交点。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWV3MWVi/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 1000 + 100;
int n, m, a[maxn][maxn], f1[maxn][maxn], f2[maxn][maxn], f3[maxn][maxn], f4[maxn][maxn], ans; int main()
{
int i, j;
scanf("%d%d",&n, &m);
for(i=1; i<=n; ++i)
for(j=1; j<=m; ++j)
scanf("%d",&a[i][j]); for(i=1; i<=n; ++i)
for(j=1; j<=m; ++j)
f1[i][j] = max(f1[i-1][j], f1[i][j-1]) + a[i][j]; for(i=1; i<=n; ++i)
for(j=m; j>=1; --j)
f2[i][j] = max(f2[i][j+1], f2[i-1][j]) + a[i][j]; for(i=n; i>=1; --i)
for(j=1; j<=m; ++j)
f3[i][j] = max(f3[i][j-1], f3[i+1][j]) + a[i][j]; for(i=n; i>=1; --i)
for(j=m; j>=1; --j)
f4[i][j] = max(f4[i][j+1], f4[i+1][j]) + a[i][j]; ans = 0;
for(i=2; i<n; ++i)
for(j=2; j<m; ++j)
ans = max(ans, max(f1[i-1][j] + f2[i][j+1] + f3[i][j-1] + f4[i+1][j],
f1[i][j-1] + f2[i-1][j] + f3[i+1][j] + f4[i][j+1]) );
printf("%d\n", ans);
return 0;
}

E Guess the Tree

load....

Codeforces Round #245 (Div. 2)的更多相关文章

  1. Codeforces Round #245 (Div. 1) 429D - Tricky Function 最近点对

    D. Tricky Function Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 codeforces.com/problemset/problem/42 ...

  2. Codeforces Round #245 (Div. 1) B. Working out (简单DP)

    题目链接:http://codeforces.com/problemset/problem/429/B 给你一个矩阵,一个人从(1, 1) ->(n, m),只能向下或者向右: 一个人从(n, ...

  3. Codeforces Round #245 (Div. 1) B. Working out (dp)

    题目:http://codeforces.com/problemset/problem/429/B 第一个人初始位置在(1,1),他必须走到(n,m)只能往下或者往右 第二个人初始位置在(n,1),他 ...

  4. Codeforces Round #245 (Div. 1) B. Working out dp

    题目链接: http://codeforces.com/contest/429/problem/B B. Working out time limit per test2 secondsmemory ...

  5. Codeforces Round #245 (Div. 2) C. Xor-tree DFS

    C. Xor-tree Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/430/problem/C ...

  6. Codeforces Round #245 (Div. 2) B. Balls Game 并查集

    B. Balls Game Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/430/problem ...

  7. Codeforces Round #245 (Div. 2) A. Points and Segments (easy) 贪心

    A. Points and Segments (easy) Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/con ...

  8. Codeforces 429 B. Working out-dp( Codeforces Round #245 (Div. 1))

    B. Working out time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  9. Codeforces Round #245 (Div. 2) B - Balls Game

    暴利搜索即可 #include <iostream> #include <vector> #include <iostream> using namespace s ...

  10. Codeforces Round #245 (Div. 2) A - Points and Segments (easy)

    水到家了 #include <iostream> #include <vector> #include <algorithm> using namespace st ...

随机推荐

  1. 关于wepack的使用总结以及优化探讨

    一.前言 不知不觉,webpack版本已经到4.0了.使用它也有很长一段时间了,回头看看,自己木有总结webpack方面的知识,现在有空起个头,主要是总结自己常用的配置和一下优化的探讨,以后有啥想法也 ...

  2. rsync算法原理和工作流程分析

    本文通过示例详细分析rsync算法原理和rsync的工作流程,是对rsync官方技术报告和官方推荐文章的解释.本文不会介绍如何使用rsync命令(见rsync基本用法),而是详细解释它如何实现高效的增 ...

  3. python元祖操作和内置方法

    1 元祖:元祖可以理解为一个不可变的列表 2 用途:用于存放多个值,当存放的多个值只有读的需求而没有改的需求时用元祖最合适 3 定义:在()内用逗号分隔开多个任意类型的值.注意:当只有一个元素的时候, ...

  4. AutoIt介绍

    AutoIt的下载网址: https://www.autoitscript.com/site/autoit/downloads/ AutoIt在线文档:http://www.autoit3.cn/Do ...

  5. 【转载】 禁止国外IP访问你的网站

    在网站的运维过程中,我们通过网站记录的IP列表记录有时候会发现很多国外的IP的访问,如美国的IP等,而很多的服务器攻击行为的发起点很有可能在国外,此时为了服务器安全的考虑,我们可以考虑禁止国外IP访问 ...

  6. JQuery遍历,find()和each()方法

    find()方法 jquery选择器非常强大,利用css的命名规约,可以更快更方便的找出想要的元素. 比如: $("#id") $("#"+"id&q ...

  7. C#特性:ConditionalAttribute

    ConditionalAttribute类 msdn解释: 指示编译器应忽略方法调用或属性,除非已定义指定的条件编译符号. 命名空间: System.Diagnostics 语法: // // 摘要: ...

  8. Maven的pom.xml文件详解【转载】

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  9. blfs(systemd版本)学习笔记-配置远程连接显示中文

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 远程连接的lfs系统需要具备以下环境便可在xshell或其他远程终端上面显示中文: 1.lfs主机设置中文编码(需要配置) 2. ...

  10. 洛谷P4344 [SHOI2015]脑洞治疗仪(ODT)

    题意 题目链接 Sol ODT板子题. 操作1直接拆区间就行. #include<bits/stdc++.h> #define fi first #define se second con ...