foreword

ummm... 开始前几个小时被朋友拉来打了这一场,总体海星,题目体验极佳,很符合口味,稍微有点点简单了不知道是不是因为是 New Year Round,很快就打到了 D,但是题目阅读难度有点点大,Alice 和 Bob 永远离不开的博弈论,呼应去年的博弈论。

少有的评测机出锅(也有可能是我打的少),一片 In queue 了大概 40 分钟,加时了以为会继续 Rated,结果又加时又 Unrated 可还行。太久不打有点不熟悉规则,手有点滑,A 题打成了 ... map[i+xd[k]][j+xd[k]] ...,调了十分钟。。还好 pretest 比较给力没有让我 fst。。另外就是 CF 上面的 printf 64 位整数输出用法的提示,%I64d 和 %l64d 傻傻分不清楚,结果 wa on test 1,又因为评测机锅了,过了一个多小时才看到。

总体来说,题目体验很好,这次的平台体验稍差。题目很经典,能学到很多。

A

没啥好说的,\(n^2\) 判一下相邻几个点的值就行了。。

#include<cstdio>
const int MAXN=500+5;
int xd[5]={0,-1,-1,1,1},yd[5]={0,-1,1,-1,1};
int n,cnt;char c[MAXN][MAXN];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%s",c[i]+1);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
for(int k=0;k<5;k++)
if(c[i+xd[k]][j+yd[k]]!='X') goto exit;
cnt++;
exit:;
}
printf("%d\n",cnt);
return 0;
}

B

一个硬模拟,均摊 \(O(n)\)。

#include<cstdio>
#include<algorithm>
const int MAXN=100000+5;
typedef long long ll;
struct data{ll price,id;};
int n,m,ptr;data d[MAXN];long long cost,cnt[MAXN],price[MAXN],x,y,tot;
bool comp(data a,data b){return a.price==b.price?a.id<b.id:a.price<b.price;}
int main()
{
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%I64d",&cnt[i]);
}
for(int i=1;i<=n;i++)
scanf("%I64d",&price[i]);
for(int i=1;i<=n;i++)
{
d[i].id=i;
d[i].price=price[i];
tot+=cnt[i];
}
std::sort(d+1,d+n+1,comp);
ptr=1;long long q;
for(int i=1;i<=m;i++)
{
scanf("%I64d %I64d",&x,&y);
cost=0;
if(cnt[x])
{
q=std::min(y,cnt[x]);
y-=q;
cnt[x]-=q;
cost=q*price[x];
}
while(y&&ptr<=n)
{
q=std::min(y,cnt[d[ptr].id]);
y-=q;
cnt[d[ptr].id]-=q;
cost+=q*price[d[ptr].id];
if(!cnt[d[ptr].id])ptr++;
}
if(!y) printf("%I64d\n",cost); else printf("0\n");
}
return 0;
}

C

可以说是数学题了,最大配最小总答案最小。

#include<cstdio>
#include<algorithm>
const int MAXN=300000+5;
int n;long long ans,num[MAXN];//org:dp[MAXN][MAXN] len is i, start from j
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%I64d",&num[i]);
std::sort(num+1,num+n+1);
for(int i=1,j=n;i<=n/2;i++,j--)
ans+=(num[i]+num[j])*(num[i]+num[j]);
printf("%I64d\n",ans);
return 0;
}

D

因为可以走回去,每次从所有已访问的点中选一个未访问的且能拓展出去的点,且点序号最小的,可以保证字典序最小。

# include<cstdio>
# include<cstring>
# include<algorithm>
# include<queue>
using namespace std;
const int N = 1e5 + 5;
priority_queue <int> q;
int st[N],to[N << 1],nx[N << 1],vis[N];
int n,m,tot;
inline void add(int u,int v)
{
to[++tot] = v,nx[tot] = st[u],st[u] = tot;
to[++tot] = u,nx[tot] = st[v],st[v] = tot;
}
int main()
{
scanf("%d%d",&n,&m);
for (int i = 1 ; i <= m ; ++i)
{
int u,v; scanf("%d%d",&u,&v);
add(u,v);
} q.push(-1),vis[1] = 1;
while (!q.empty())
{
int x = -q.top(); q.pop(); printf("%d ",x);
for (int i = st[x] ; i ; i = nx[i])
if (!vis[to[i]]) vis[to[i]] = 1,q.push(-to[i]);
}
return 0;
}

Codeforces #536 A..D 题解的更多相关文章

  1. codeforces#536题解

    CodeForces#536 A. Lunar New Year and Cross Counting Description: Lunar New Year is approaching, and ...

  2. Codeforces Round #543 Div1题解(并不全)

    Codeforces Round #543 Div1题解 Codeforces A. Diana and Liana 给定一个长度为\(m\)的序列,你可以从中删去不超过\(m-n*k\)个元素,剩下 ...

  3. Codeforces Round #545 Div1 题解

    Codeforces Round #545 Div1 题解 来写题解啦QwQ 本来想上红的,结果没做出D.... A. Skyscrapers CF1137A 题意 给定一个\(n*m\)的网格,每个 ...

  4. Codeforces Round #539 Div1 题解

    Codeforces Round #539 Div1 题解 听说这场很适合上分QwQ 然而太晚了QaQ A. Sasha and a Bit of Relax 翻译 有一个长度为\(n\)的数组,问有 ...

  5. [Codeforces Round #461 (Div2)] 题解

    [比赛链接] http://codeforces.com/contest/922 [题解] Problem A. Cloning Toys          [算法] 当y = 0 ,   不可以 当 ...

  6. Codeforces 7E - Defining Macros 题解

    目录 Codeforces 7E - Defining Macros 题解 前言 做法 程序 结尾 Codeforces 7E - Defining Macros 题解 前言 开始使用博客园了,很想写 ...

  7. Educational Codeforces Round 64 部分题解

    Educational Codeforces Round 64 部分题解 不更了不更了 CF1156D 0-1-Tree 有一棵树,边权都是0或1.定义点对\(x,y(x\neq y)\)合法当且仅当 ...

  8. Educational Codeforces Round 64部分题解

    Educational Codeforces Round 64部分题解 A 题目大意:给定三角形(高等于低的等腰),正方形,圆,在满足其高,边长,半径最大(保证在上一个图形的内部)的前提下. 判断交点 ...

  9. Codeforces Beta Round #62 题解【ABCD】

    Codeforces Beta Round #62 A Irrational problem 题意 f(x) = x mod p1 mod p2 mod p3 mod p4 问你[a,b]中有多少个数 ...

随机推荐

  1. Passive Client Feature

    Q. How is the passive client feature used on Wireless LAN Controllers? A. Passive clients are wirele ...

  2. APDL获取节点和单元的结果

    目录 1. 获取节点结果 1.1 获取节点应力结果 1.2 获取节点位移结果 1.3 获取节点应变结果--总应变 1.4 获取节点应变结果--弹性应变 1.5 获取节点应变结果--塑性应变 1.6 获 ...

  3. 杭电 1203 I NEED A OFFER!

    I NEED A OFFER! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  4. CSS背景图片设置

    *{ margin:0px; padding:0px; list-style: none; text-decoration: none; font-family: Arial,'Microsoft Y ...

  5. 「luogu3402」【模板】可持久化并查集

    「luogu3402」[模板]可持久化并查集 传送门 我们可以用一个可持久化数组来存每个节点的父亲. 单点信息更新和查询就用主席树多花 一个 \(\log\) 的代价来搞. 然后考虑如何合并两个点. ...

  6. 使用Servlet处理AJAX请求

    AJAX用于异步更新页面的局部内容. ajax常用的请求数据类型 text    纯文本字符串 json    json数据 使用ajax获取text示例 此种方式常用于前端向后台查询实体的一个属性( ...

  7. SSH项目Dao层和Service层及Action的重用

    泛型 1.泛型的定义 1.泛型是一种类型    1.关于Type            //是一个标示接口,该标示接口描述的意义是代表所有的类型        public interface Typ ...

  8. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:强调

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. ASP.NET Core的身份认证框架IdentityServer4--入门

    ASP.NET Core的身份认证框架IdentityServer4--入门 2018年08月11日 10:09:00 qq_42606051 阅读数 4002   https://blog.csdn ...

  10. 监听EditView中的文本改变事件详解--转

    转自: http://blog.csdn.net/zoeice/article/details/7700529 android中的编辑框EditText也比较常用,那比如在搜索框中,没输入一个字,下面 ...