CCPC2017湘潭 1263 1264 1267 1268
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的更多相关文章
- Bzoj索引
1001 : http://ideone.com/4omPYJ1002 : http://ideone.com/BZr9KF1003 : http://ideone.com/48NJNh1004 : ...
- Hsql中In没有1000的限制
SELECT * FROM user , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ...
- C++版-剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告
剑指offer 重建二叉树 提交网址: http://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&tq ...
- 何为编码 GBK 和 UTF8编码?GBK,GB2312与区位码有何关系?
何为GBK,何为GB2312,与区位码有何渊源? 区位码是早些年(1980)中国制定的一个编码标准,如果有玩过小霸王学习机的话,应该会记得有个叫做“区位”的输入法(没记错的话是按F4选择).就是打四个 ...
- Linux那些事儿之我是Hub(大结局)挂起自动化【转】
转自:http://blog.csdn.net/fudan_abc/article/details/1805471 目睹了当今大学校园的素质流氓化,kiss公开化,消费白领化,上课梦游化,逃课普遍化, ...
- MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动
MVC图片上传详解 MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...
- jqu
1 /*2 * 说明:3 * 本源代码的中文注释乃Auscarlin呕心沥血所作.旨在促进jQuery的传播以及向广大jQuery爱好者提供一个进阶4 *的途径,以让各位更加深入地了解jQuery,学 ...
- CPictureEx类
CPictueEx类不仅可以显示GIF(包括GIF动画),还可以显示JPEG.BMP.WMF.ICO.CUR等. 参考:https://www.codeproject.com/Articles/142 ...
- Redis 工具类 java 实现的redis 工具类
最近了解了一下非关系型数据库 redis 会使用简单的命令 在自己本地电脑 使用时必须先启动服务器端 在启动客户端 redis 简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内 ...
随机推荐
- C#趋势图(highcharts插件)
<!--图表效果展现--> <div class="TUI-layout-center" style="overflow: auto;" id ...
- Python, pandas: how to sort dataframe by index// Merge two dataframes by index
pd.concat([df1, df2], axis=1) df.sort_index(inplace=True) https://stackoverflow.com/questions/404680 ...
- Torch 两个矩形框重叠面积的计算 (IoU between tow bounding box)
Torch 两个矩形框重叠面积的计算 (IoU between tow bounding box) function DecideOberlap(BBox_x1, BBox_y1, BBox_x2, ...
- mybatis配置文件namespace用法总结
本文为博主原创,未经允许不得转载: 由于在应用过程中,发现namespace在配置文件中的重要性,以及配置的影响,在网上看了很多博客,发现很多人对namespace存在误解, 所以总结一下namesp ...
- SAP FI CO模块常用事务代码
...
- 理解ffmpeg中的pts,dts,time_base
首先介绍下概念: PTS:Presentation Time Stamp.PTS主要用于度量解码后的视频帧什么时候被显示出来 DTS:Decode Time Stamp.DTS主要是标识读入内存中的b ...
- JS加载获取父窗体传递的参数
JS加载获取父窗体传递的参数 $(document).ready(function () { var query = location.search.substring(1); var values ...
- SSH KEY 设置 目录在open ~ 根目录下的.ssh 里面
当我们从github或者gitlab上clone项目或者参与项目时,需要证明我们的身份.github.gitlab支持使用SSH协议进行免密登录,而SSH协议采用了RSA算法保证了登录的安全性.我们要 ...
- pymouse 点击指定坐标点
from pymouse import PyMouse mouse = PyMouse() mouse.click(,)
- nginx的使用教程
一.基本概念 1.1 正向代理和反向代理 (参考文档:https://www.cnblogs.com/hafiz/p/7233306.html) 假设我们给定客户端A.代理服务器B.以及最终服务器C ...