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的倍数,数字可以重 ...
随机推荐
- Mac 终端—不同文件不同颜色显示,提示文字
原文地址 修改Mac终端(Terminal)里不同类型文件的显示颜色 修改Mac终端(Terminal)的提示文字 Mac终端显示/隐藏文件命令 1. 修改Mac终端(Terminal)里不同类型文件 ...
- Spring入门篇总结:
本文是对慕课网上"搞定SSM开发"路径的系列课程的总结,详细的项目文档和课程总结放在github上了.点击查看 视频传送门:Spring入门篇 该门课程主要从Spring的Bean ...
- 基于 HTML5 WebGL 的 3D 场景中的灯光效果
构建 3D 的场景除了创建模型,对模型设置颜色和贴图外,还需要有灯光的效果才能更逼真的反映真实世界的场景.这个例子我觉得既美观又代表性很强,所以拿出来给大家分享一下. 本例地址:http://www. ...
- BZOJ 4818 SDOI2017 序列计数
刚出炉的省选题,还是山东的. 自古山东出数学和网络流,堪称思维的殿堂,比某地数据结构成风好多了. 废话不说上题解. 1.题面 求:n个数(顺序可更改),值域为[1,m],和为p的倍数,且这些数里面有质 ...
- 初学者福音——10个最佳APP开发入门在线学习网站
根据Payscale的调查显示,现在的APP开发人员的年薪达到:$66,851.这也是为什么那么多初学的开发都想跻身到APP开发这行业的主要原因之一.每当你打开App Store时候,看着琳琅满目的A ...
- Gulp-静态网页模块化
前言: 在做纯静态页面开发的过程中,难免会遇到一些的尴尬问题.比如:整套代码有50个页面,其中有40个页面顶部和底部模块相同.那么同样的两段代码我们复制了40遍(最难受的方法).然后,这个问题就这样解 ...
- jquery中this和event.target的区别
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- NoFragment重大bug
在activity中切换fragment,有以下几点问题需要注意: 例如做一个类似于这样的tab切换fragment的,有以下几点问题 1.切换fragment后,前几个fragment能透视,解决方 ...
- 理解css伪类和伪元素
伪类就是可以通过直接添加一个类样式达到同等效果,而伪元素,则需要先添加一个元素,然后在元素上添加样式才能达到同等效果 伪类 :active 向被激活的元素添加样式. :focus 向拥有键盘输入焦点的 ...
- 对比Tornado和Twisted两种异步Python框架
做Python的人,一定知道两个性能优秀的异步网络框架:tornado,和twisted. 那么,这两个著名的框架,又有什么异同呢?tornado和twisted,我都用在几个游戏项目中,做过后端,觉 ...