AtCoder Regular Contest 078
我好菜啊,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的更多相关文章
- AtCoder Regular Contest 078 D
D - Fennec VS. Snuke Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement F ...
- AtCoder Regular Contest 078 C
C - Splitting Pile Time limit : 2sec / Memory limit : 256MB Score : 300 points Problem Statement Snu ...
- AtCoder Regular Contest 061
AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...
- AtCoder Regular Contest 094 (ARC094) CDE题解
原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...
- AtCoder Regular Contest 092
AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了\(2N\)个点,其中\(N\)个是\(A\)类点,\(N\)个是\(B\) ...
- AtCoder Regular Contest 093
AtCoder Regular Contest 093 C - Traveling Plan 题意: 给定n个点,求出删去i号点时,按顺序从起点到一号点走到n号点最后回到起点所走的路程是多少. \(n ...
- AtCoder Regular Contest 094
AtCoder Regular Contest 094 C - Same Integers 题意: 给定\(a,b,c\)三个数,可以进行两个操作:1.把一个数+2:2.把任意两个数+1.求最少需要几 ...
- AtCoder Regular Contest 095
AtCoder Regular Contest 095 C - Many Medians 题意: 给出n个数,求出去掉第i个数之后所有数的中位数,保证n是偶数. \(n\le 200000\) 分析: ...
- AtCoder Regular Contest 102
AtCoder Regular Contest 102 C - Triangular Relationship 题意: 给出n,k求有多少个不大于n的三元组,使其中两两数字的和都是k的倍数,数字可以重 ...
随机推荐
- JavaScript类型比较
JavaScript的类型 原始类型: number string boolean null undefined 对象类型: Object function Array Date ... 隐式转换 + ...
- (一)最小的Django
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 本文基本内容均出自<Lightweight Django>(中文为<轻量级D ...
- 数据库的SQL优化
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. (因为在条件查询条件添加索引,会直接被检索到列,会非常的快速) 2.应尽量避免在 wher ...
- win10 下 学习 xe10 误以为调试失效
1. XE里面运行的有两个按扭,你点后面一个,就是debug 的了,前面一个是直接运行,不一样的!,被delphi7老思维导向错了 1)绿色箭头是直接运行,快捷键:ctrl+shfit+F9 2) ...
- 每周.NET前沿技术文章摘要(2017-06-07)
汇总国外.NET社区相关文章,覆盖.NET ,ASP.NET等内容: .NET .NET Core and .NET Framework Working Together, Or: The Magic ...
- ArcGIS API for JavaScript 4.2学习笔记[23] 没有地图如何进行查询?【FindTask类的使用】
从第一篇到现在都是基于地图的,不管怎么样,不管是2D还是3D,至少有个图. 这次来个没有图的例子,看看纯文字的空间查询是什么样的. 本例适用于后台查询或低性能电脑的查询. 预览图 由于4.3和4.2的 ...
- TensorFlow 代码行统计
https://github.com/tensorflow/tensorflow.git
- NodeJS之微信开发
... 由于工作原因,太久没有写博客了,惭愧. 一直在说要买云服务器,前几天终于买了3个月,拿到之后就开始玩我最爱的nodejs,每天都是搞到12点1点过,乐此不疲啊. 从昨天开始玩的微信公众号,到今 ...
- 实现Windows程序的数据更新
枚举是一组描述性的名称定义一组有限的值,不包含方法对可能的值进行约束枚举是一组指定的常数,对可能的值进行约束枚举使用时直观方便.更易于维护 pictureBox控件属性名称 说明image ...
- SSM框架开发web项目系列(五) Spring集成MyBatis
前言 在前面的MyBatis部分内容中,我们已经可以独立的基于MyBatis构建一个数据库访问层应用,但是在实际的项目开发中,我们的程序不会这么简单,层次也更加复杂,除了这里说到的持久层,还有业务逻辑 ...