artem专题

Codeforces 442C Artem and Array(stack+贪心)

题目连接:Codeforces 442C Artem and Array 题目大意:给出一个数组,每次删除一个数,删除一个数的得分为两边数的最小值,如果左右有一边不存在则算作0分。问最大得分是多少。 解题思路:首先将连续的a,b,c,a > b && c > b的情况将c掉,获得min(a,b)分,这样处理后数组变成一个递増再递减的序列,除了最大和第二大的取不到,其他数字均可以得分。

Codeforces Round #682 (Div. 2) C. Engineer Artem

传送门 参考国际象棋棋盘的染色方法。 给二维数组a[i][j]编号为i+j,它左右两边的编号为i+j-1,i+j+1显然i+j的奇偶性和他们不同 它上下的分别为i-1+j,i+1+j,同上; #include<bits/stdc++.h>using namespace std;typedef long long LL; typedef pair<int, int> P;c

Little Artem and Time Machine CodeForces - 669E

http://codeforces.com/problemset/problem/669/E 动态主席树模板题 CDQ分治也可以做 转换为三位偏序 初始给定顺序为第一维 t值为第二维 x值为第三维 代码略 #include <bits/stdc++.h>using namespace std;struct node1{int tp;int t;int x;};struct node2

cf Round #632 (Div. 2) A. Little Artem

**题意:在给定的n * m个格子种填入白色或者黑色,使得白色的个数等于黑色的个数加1(当黑色与白色相邻的时候才算数,若黑色附近全是黑色,则不算数) 思路:黑白黑白交叉,如下图,当n * m为奇数时,B显然会比W多一个 ,满足条件,因此我们只需要考虑,n * m为偶数时,由下图可知,可以直接将最后一个元素改成B(如2,3若本来是B也不影响),当然如果n,m都是偶数的时候,需要把第n行第m-1个元