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语言编写.支持网络.可基于内 ...
随机推荐
- uniGUI试用笔记(十一)
最近研究了一下UniGUI的TuniDBGrid,记录一下免得忘记了. TuniDBGrid的重要属性包括: 1.列—TUniDBGridColumns和TUniDBGridColumn 每个列对象( ...
- uniGUI出新版本了,0.97.0.1081
uniGUI出新版本了,0.97.0.1081,试用版0.97.0.1075,支持Delphi2006~XE7.下载地址是: http://www.unigui.com/downloads 已在XE6 ...
- CF767C 记录错误
链接 https://codeforces.com/contest/767/problem/C 思路 之所以把这个题放进来,是因为要记录错误 情况不止一种 所以答案存储就是>=2了 代码 #in ...
- MySql 语句收集
目录 =与:=区别 序列号: 分组: 子查询分组: 同数据库表数据迁移 存储过程 参考: =与:=区别 = 只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用.鉴于此,用变量实 ...
- POJ 3903 Stock Exchange(LIS || 线段树)题解
题意:求最大上升子序列 思路:才发现自己不会LIS,用线段树写的,也没说数据范围就写了个离散化,每次查找以1~a[i]-1结尾的最大序列答案,然后更新,这样遍历一遍就行了.最近代码总是写残啊... 刚 ...
- [转]otunnel:一个和lcx差不多的端口转发的工具
这是一个采用Golang编写的和lcx差不多的端口转发的工具,用来突破内网环境 项目地址 ooclab/otunnel 下载地址(内涵各大平台) http://dl.ooclab.com/otunne ...
- Android中EditText焦点问题
https://www.jianshu.com/p/3d31d681f4bc 问题:当EditText失去焦点时做内容校验 场景:用户编辑EditText将内容清空,当点击空白地方时关闭软键盘,同时校 ...
- 关于 Image Caption 中测试时用到的 beam search算法
关于beam search 之前组会中没讲清楚的 beam search,这里给一个案例来说明这种搜索算法. 在 Image Caption的测试阶段,为了得到输出的语句,一般会选用两种搜索方式,一种 ...
- 转载:mysql存储过程讲解
记录MYSQL存储过程中的关键语法: DELIMITER // 声明语句结束符,用于区分; CEATE PROCEDURE demo_in_parameter(IN p_in int) 声明存储过程 ...
- Thymeleaf 模板引擎技术
引入Thymeleaf: <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf. ...