1263

拉升一下就A了

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#define LL long long int
using namespace std; int main()
{
cin.sync_with_stdio(false);
int n,m,a,b;
while(cin>>n>>m>>a>>b)
{
string s[];
for(int i=;i<n;i++)
{
cin>>s[i];
}
for(int i=;i<n*a;i++)
{
for(int j=;j<m*b;j++)
{
int y=i/a;
int x=j/b;
cout<<s[y][x];
}
cout<<endl;
}
} return ;
}

1264

这题特点是区间端点不可多次选取,然后在此情况下求前k大的区间和(根据C做一下处理就好)

妈蛋XTUOJ把咱代码吞了,反正不长,再敲一遍。

#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
#include <set>
#include <queue>
#define LL long long int
using namespace std;
LL n,m,c;
LL num[];
LL pre[];
int main()
{
cin.sync_with_stdio(false);
while(cin>>n>>m>>c)
{
for(int i=;i<n;i++)
{
cin>>num[i];
if(i==)
pre[i]=num[i];
else
pre[i]=pre[i-]+num[i];
}
pre[n]=;
sort(pre,pre+n+);
LL ans=;
for(int i=;i<=n&&i<m;i++)
{
LL l=i;
LL r=n-i;
if(l>r||pre[r]-pre[l]<c)
break;
ans+=pre[r]-pre[l]-c;
}
cout<<ans<<endl;
}
return ;
}

1267

题意简单来说就是一棵树根据两点之间的路径长度作为建边费用,求最大生成树。

感谢江理小伙伴提供思路,咱是死在赛场上都没想到用直径的特点。

首先已知树最长的边是其直径,前n-1长的边一定和直径的某个点相连。

证明:
设直径左右两点A B
任何点都直接间接连接至A,B
设一个中间点C在AB直径上,对于一个点D,如果它在直径上,则把C当作D,DC=,否则DC长度为DC本身
假设点D到E的距离大于到A的距离且大于到D的距离,有
DE>=AC+CD//假设
DE>=BC+CD
AB>=AC+CD+DE//AB直径
AB>=BC+CD+DE
==> AB*+DE*>=AB*+DE*+CD*
<==> >=CD*,若CD<0与事实相悖。
假设CD=,那么D可以当作在直径上
DE>=AC
==> DE>=AD
DE>=BC
==> DE>=BD
不妨设AD>=BD
有DE+AC>=BD+AD
==> AD>=AB,当且仅当AD是多条直径中的一条时成立有AD==AB成立,不然均与结论相悖。
证毕。

所以前n-1长的边就是直径加上剩余所有点到直径两端点距离最大值的和了。

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#define LL long long int
using namespace std;
struct node
{
LL p,d;
};
vector<node> g[]; LL n,a,b,c;
LL st,en;
bool vis[];
LL dis[];
node dfs(LL now,LL dis)
{
node rec;
rec.p=-;
if(vis[now])
{
return rec;
}
vis[now]=true; rec.p=now,rec.d=dis;
for(int i=;i<g[now].size();i++)
{ node px=dfs(g[now][i].p,dis+g[now][i].d); if(px.p==-) continue;
else
{
if(rec.p==-) rec=px;
else if(px.d>rec.d) rec=px;
}
}
return rec;
}
void bfs(LL fr)
{
queue<node> q;
q.push((node){fr,});
vis[fr]=true;
while(!q.empty())
{
node now=q.front();
q.pop();
if(now.d>dis[now.p])
dis[now.p]=now.d;
for(int i=;i<g[now.p].size();i++)
{
node nx=g[now.p][i];
if(vis[nx.p]==false)
{
q.push((node){nx.p,now.d+nx.d});
vis[nx.p]=true;
}
}
}
} int main()
{
cin.sync_with_stdio(false);
while(cin>>n)
{
for(int i=;i<=n;i++) g[i].clear();
for(int i=;i<n-;i++)
{ cin>>a>>b>>c;
g[a].push_back((node){b,c});
g[b].push_back((node){a,c});
} fill(vis,vis+n+,false);
st=dfs(,).p;
fill(vis,vis+n+,false);
en=dfs(st,).p;
fill(dis,dis+n+,);
fill(vis,vis+n+,false);
bfs(st);
fill(vis,vis+n+,false);
bfs(en);
LL ans=;
for(int i=;i<=n;i++)
{
if(i==st) continue;
ans+=dis[i];
}
cout<<ans<<endl;
} return ;
}

1268

水题

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#define LL long long int
using namespace std; int main()
{
cin.sync_with_stdio(false);
LL a,b;
while(cin>>a>>b)
{
LL x=__gcd(a,b);
if(x==) x=min(a,b);
LL y=*a*b;
LL fix=__gcd(x,y);
x/=fix,y/=fix;
cout<<x<<'/'<<y<<endl;
} return ;
}

CCPC2017湘潭 1263 1264 1267 1268的更多相关文章

  1. Bzoj索引

    1001 : http://ideone.com/4omPYJ1002 : http://ideone.com/BZr9KF1003 : http://ideone.com/48NJNh1004 : ...

  2. Hsql中In没有1000的限制

    SELECT * FROM user , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ...

  3. C++版-剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告

    剑指offer 重建二叉树 提交网址: http://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&tq ...

  4. 何为编码 GBK 和 UTF8编码?GBK,GB2312与区位码有何关系?

    何为GBK,何为GB2312,与区位码有何渊源? 区位码是早些年(1980)中国制定的一个编码标准,如果有玩过小霸王学习机的话,应该会记得有个叫做“区位”的输入法(没记错的话是按F4选择).就是打四个 ...

  5. Linux那些事儿之我是Hub(大结局)挂起自动化【转】

    转自:http://blog.csdn.net/fudan_abc/article/details/1805471 目睹了当今大学校园的素质流氓化,kiss公开化,消费白领化,上课梦游化,逃课普遍化, ...

  6. MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动

    MVC图片上传详解   MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...

  7. jqu

    1 /*2 * 说明:3 * 本源代码的中文注释乃Auscarlin呕心沥血所作.旨在促进jQuery的传播以及向广大jQuery爱好者提供一个进阶4 *的途径,以让各位更加深入地了解jQuery,学 ...

  8. CPictureEx类

    CPictueEx类不仅可以显示GIF(包括GIF动画),还可以显示JPEG.BMP.WMF.ICO.CUR等. 参考:https://www.codeproject.com/Articles/142 ...

  9. Redis 工具类 java 实现的redis 工具类

    最近了解了一下非关系型数据库 redis 会使用简单的命令 在自己本地电脑 使用时必须先启动服务器端 在启动客户端 redis 简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内 ...

随机推荐

  1. topcoder srm 390 div1

    problem1 link 记录一个模$k$之后的值是否出现过,出现过则出现循环,无解:否则最多$k$ 次一定能出现0. import java.util.*; import java.math.*; ...

  2. topcoder srm 710 div1 -23

    1.给定两个长度都为$n$的数组$A,B$,给出一个操作序列将$A$变成$B$.每个操作可以是以下两种之一:(1)选择一个$i,0\leq i <n$且$A_{i} \neq 0$,令$t=A_ ...

  3. 如何开启Intel HAXM功能

    1. 启用BIOS中的Intel(R) Virtualization Technology选项 2.设置成功后,在控制台中输入sc query intelhaxm.出现下图即为成功 3. 启动andr ...

  4. MongoDB NoSQL 常用指令

    查询 日期区间 db.<collections>.find({"service_name":"xxx"}).sort({ update_time:- ...

  5. MVC 之 初识(一)

    创建一个mvc项目,在项目中会startup.cs文件,startup文件主要是将项目寻找一个宿主 过去,项目一般都是寄宿在iis上的,通过owin可以寄宿到不同的宿主. 可以关闭owin:<a ...

  6. vs 附加进程 iis进程显示

  7. C# 各种控件实现可拖动和调整大小

    http://www.360doc.com/content/18/0516/12/55659281_754382494.shtml using System; using System.Collect ...

  8. p3302 [SDOI2013]森林(树上主席树+启发式合并)

    对着题目yy了一天加上看了一中午题解,终于搞明白了我太弱了 连边就是合并线段树,把小的集合合并到大的上,可以保证规模至少增加一半,复杂度可以是\(O(logn)\) 合并的时候暴力dfs修改倍增数组和 ...

  9. Kylin工作原理、体系架构

    核心思想:预计算. 对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube,并存在HBase中,供查询时直接访问 将高复杂度的聚合运算.多表连接……操作转换成对预计算结果的查询.决定了Kyl ...

  10. Bash 和 Zsh 开启 vi-mode

    Bash 和 Zsh 开启 vi-mode bash 有两种操作模式,分别是 emacs 和 vi . 在 bash 中 set -o vi # 临时开启 vi 模式 vi ~/.bashrc # 在 ...