我好菜啊,ARC注定出不了F系列。要是出了说不定就橙了。

C - Splitting Pile

题意:把序列分成左右两部分,使得两边和之差最小。

#include<cstdio>
#include<algorithm>
#define MN 2100001
using namespace std; int n,m,a[MN];
long long sum1=,sum2=,mmh=1e18;
long long _abs(long long x){return x<?-x:x;}
int main(){
scanf("%d",&n);
for (int i=;i<=n;i++) scanf("%d",&a[i]),sum2+=a[i];
for (int i=;i<n;i++) if (sum1+=a[i],_abs(sum2-sum1-sum1)<mmh) mmh=abs(sum2-sum1-sum1);
printf("%d\n",mmh);
}

D - Fennec VS. Snuke

题意:一棵树,初始有一个白点一个黑点,两人轮流操作,分别把白区域的黑区域拓展一个点,问谁先无法操作。

#include<cstdio>
#include<vector>
#include<algorithm>
#define MN 2100001
using namespace std; int n,m,a[MN],x,y,fa[MN],s[MN],d[MN];
vector<int> v[MN];
void dfs(int x,int f){
fa[x]=f;s[x]=;
for (int i=;i<v[x].size();i++)
if (v[x][i]!=f){
d[v[x][i]]=d[x]+;
dfs(v[x][i],x);
s[x]+=s[v[x][i]];
}
}
int main(){
scanf("%d",&n);
for (int i=;i<n;i++){
scanf("%d%d",&x,&y);
v[x].push_back(y);v[y].push_back(x);
}
dfs(,);
x=n;y=d[x]-(d[x]->>);
while (d[x]!=y) x=fa[x];
if (n-s[x]>s[x]) puts("Fennec");else puts("Snuke");
}

E - Awkward Response

题意:猜数,每次可以询问一个数,回答这个数的大小和字典序与答案的大小关系是否相同。

逐位确定即可。

#include<cstdio>
#include<vector>
#include<algorithm>
#define MN 2100001
using namespace std; int n,m,a[MN],x,y;
vector<int> v[MN];
long long g=;
bool bo=;
char s[]="",c[];
int main(){
for (int i=;i<=;i++){
int l=i==,r=,mid;
while (l<r){
mid=l+r>>;
s[i]=mid+'';
printf("? %s\n",s);
fflush(stdout);
scanf("%s",c);
if (c[]=='Y') r=mid;else l=mid+;
}
if (l!=) bo=;
g=g*+l;
printf("? %d\n",g+);
fflush(stdout);
scanf("%s",c);
if (bo){
if (c[]=='N') return printf("! %d\n",g),fflush(stdout),;
}else{
if (c[]=='Y') return printf("! %d\n",g),fflush(stdout),;
}
s[i]=l+'';
}
}

F - Mole and Abandoned Mine

题意:给一个图,要求删掉一条边,使得1到n有且只有一条简单路径。

状压dp

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; int n,m,map[][],x,y,z,mmh[<<][],o[<<][];
inline int work(int a,int b){
int mmh=;
for (int i=;i<n;i++)
if ((a>>i)&) mmh+=o[b][i];
return mmh;
}
int main(){
scanf("%d%d",&n,&m);
memset(map,,sizeof(map));
memset(mmh,,sizeof(mmh));
while(m--){
scanf("%d%d%d",&x,&y,&z);x--;y--;
map[x][y]=map[y][x]=z;
}
for (int i=;i<(<<n);i++)
for (int j=;j<n;j++){
o[i][j]=;
for (int k=;k<n;k++)
if ((i>>k)&) o[i][j]+=map[j][k];
}
mmh[][]=;
for (int i=;i<(<<n);i++)
for (int j=;j<n;j++)
if ((i>>j)&){
for (int k=;k<n;k++)
if (map[j][k])
if (!((i>>k)&)) mmh[i|(<<k)][k]=min(mmh[i|(<<k)][k],mmh[i][j]+work(i,<<k)-map[j][k]); int u=(<<n)--i;
for (int p=u;p;p=(p-)&u) mmh[i|p][j]=min(mmh[i|p][j],mmh[i][j]+work(i^(<<j),p));
}
printf("%d\n",mmh[(<<n)-][n-]);
}

AtCoder Regular Contest 078的更多相关文章

  1. AtCoder Regular Contest 078 D

    D - Fennec VS. Snuke Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement F ...

  2. AtCoder Regular Contest 078 C

    C - Splitting Pile Time limit : 2sec / Memory limit : 256MB Score : 300 points Problem Statement Snu ...

  3. AtCoder Regular Contest 061

    AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...

  4. AtCoder Regular Contest 094 (ARC094) CDE题解

    原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...

  5. AtCoder Regular Contest 092

    AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了\(2N\)个点,其中\(N\)个是\(A\)类点,\(N\)个是\(B\) ...

  6. AtCoder Regular Contest 093

    AtCoder Regular Contest 093 C - Traveling Plan 题意: 给定n个点,求出删去i号点时,按顺序从起点到一号点走到n号点最后回到起点所走的路程是多少. \(n ...

  7. AtCoder Regular Contest 094

    AtCoder Regular Contest 094 C - Same Integers 题意: 给定\(a,b,c\)三个数,可以进行两个操作:1.把一个数+2:2.把任意两个数+1.求最少需要几 ...

  8. AtCoder Regular Contest 095

    AtCoder Regular Contest 095 C - Many Medians 题意: 给出n个数,求出去掉第i个数之后所有数的中位数,保证n是偶数. \(n\le 200000\) 分析: ...

  9. AtCoder Regular Contest 102

    AtCoder Regular Contest 102 C - Triangular Relationship 题意: 给出n,k求有多少个不大于n的三元组,使其中两两数字的和都是k的倍数,数字可以重 ...

随机推荐

  1. 数据分析与展示——Pandas数据特征分析

    Pandas数据特征分析 数据的排序 将一组数据通过摘要(有损地提取数据特征的过程)的方式,可以获得基本统计(含排序).分布/累计统计.数据特征(相关性.周期性等).数据挖掘(形成知识). .sort ...

  2. 个人的MySql配置总结

    lower_case_table_names参数是用来设置MySQL是否让Schema和数据表大小写敏感,我测试的是在查询界面和MySQL控制台界面无法改变它的值,要在配置文件中改变(先关闭服务),一 ...

  3. LeetCode中的最大子串和问题(Maximum Subarray)

    问题描述: Find the contiguous subarray within an array (containing at least one number) which has the la ...

  4. 【Linux】Linux学习笔记(完结)

    前言 在工作中发现Linux系统的重要性,于是计划重温下Linux,顺便记录笔记方便之后查阅. 磁盘分区 在Linux系统中,每个设备都被当成一个文件来对待:如IDE接口的硬盘文件名为/dev/hd[ ...

  5. c语言项目流程开发三部曲

    一.这一部曲是紧接第二部没有介绍完的内容,主要是函数接口实体的实现,代码比较多,如果没有看前两部曲的先去看看,再来看这里,不然不好理解,话不说多上代码, #define _CRT_SECURE_NO_ ...

  6. SDP(0):Streaming-Data-Processor - Data Processing with Akka-Stream

    再有两天就进入2018了,想想还是要准备一下明年的工作方向.回想当初开始学习函数式编程时的主要目的是想设计一套标准API給那些习惯了OOP方式开发商业应用软件的程序员们,使他们能用一种接近传统数据库软 ...

  7. bzoj 1758: [Wc2010]重建计划

    Description Input 第 一行包含一个正整数N,表示X国的城市个数. 第二行包含两个正整数L和U,表示政策要求的第一期重建方案中修建道路数的上下限 接下来的N-1行描述重建小组的原有方案 ...

  8. 修改placeholder的样式

    input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #666; } input:-moz-pl ...

  9. 表单Checkbox全选反选全不选

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Lucene.net(4.8.0) 学习问题记录三: 索引的创建 IndexWriter 和索引速度的优化

    前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...