R49 A-D D图有向有环图
A. Palindromic Twist
给一个字符串(小写字母) 每个字符+1,-1;变成其他字符 a只能变b z只能变y 看能否变成回文字符串
#include<bits/stdc++.h>
using namespace std;
int32_t main()
{
int T; cin>>T;
while(T--)
{
int n; cin>>n;
string ss; cin>>ss;
int t=;
for(int i=;i<n/;i++)
{
if(ss[i]-ss[n--i]==||fabs(ss[i]-ss[n--i])==)
continue;
else t=;
}
if(t==) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
}
A.cpp
B. Numbers on the Chessboard
分类讨论下就ok了
#include<bits/stdc++.h>
#define int long long
#define MAX(a,b,c) max(a,max(b,c))
#define MIN(a,b,c) min(a,min(b,c))
#define pb push_back
#define fi first
#define se second
typedef long long ll;
typedef long long LL;
typedef unsigned long long ull;
typedef unsigned long long uLL;
using namespace std;
const int maxn=1e5+;
const int INF=0x3f3f3f3f;
int32_t main()
{
int n,q; cin>>n>>q;
if(n%==)
{
int ans1=;
int ans2=n*n/;
while(q--)
{
int a,b;cin>>a>>b;
if( (a+b)%== ) cout<<ans1+(a-)*n/+(b+)/<<endl;
else cout<<ans2+(a-)*n/+(b+)/<<endl;
}
}
else if(n%==)
{
int ans1=;
int ans2=n*n/+;
while(q--)
{
int a,b;cin>>a>>b;
if( (a+b)%== )
{
if(a%==) cout<<(a-)/*n+(b+)/<<endl;
else if(a%==) cout<<(a-)/*n+(n+)/+(b+)/<<endl;
}
else
{
if(a%==) cout<<ans2+(a-)/*n+(b+)/<<endl;
else if(a%==) cout<<ans2+(a-)/*n+(n-)/+(b+)/<<endl;
}
}
}
}
B.cpp
C. Minimum Value Rectangle
要使 4*(a+b)(a+b)/a*b (a<b) 即使 b/a 最小 排序后暴力也可以 直接找b/a 最小也行。
#include<bits/stdc++.h>
#define int long long
#define MAX(a,b,c) max(a,max(b,c))
#define MIN(a,b,c) min(a,min(b,c))
#define pb push_back
#define fi first
#define se second
typedef long long ll;
typedef long long LL;
typedef unsigned long long ull;
typedef unsigned long long uLL;
using namespace std;
const int maxn=3e6+;
const int INF=0x3f3f3f3f;
int a[maxn];
int b[maxn];
int32_t main()
{ios::sync_with_stdio(false); cin.tie(); cout.tie();
int T;cin>>T;
while(T--)
{ int n; cin>>n;
for(int i=;i<=n;i++) cin>>a[i];
sort(a+,a++n);
int t=;
for(int i=;i<n;i++)
{
if(a[i]!=a[i+]) continue;
else { b[++t]=a[i]; i++;}
}
double ans=1e18;
int x,y;
for(int i=;i<t;i++)
{
double c=(b[i]*1.000000000000/b[i+])+b[i+]*1.000000000000/b[i];
if(c<ans)
{
ans=c;
x=b[i]; y=b[i+];
}
}
cout<<x<<" "<<x<<" "<<y<<" "<<y<<endl;
}
}
C.cpp
D. Mouse Hunt
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+;
int c[maxn];
int a[maxn];
int x[maxn];
int sst[maxn];
int ffind(int x)
{
if(x==sst[x]) return x;
return sst[x]=ffind(sst[x]);
}
int dfs(int x, int y){
if(x == y) return c[x];
return min(dfs(a[x], y), c[x]);
}
int main()
{
int n; cin>>n;
for(int i=;i<=n;i++) cin>>c[i];
for(int i=;i<=n;i++) sst[i]=i ;
for(int i=;i<=n;i++) cin>>a[i];
for(int i=;i<=n;i++)
{
if(ffind(a[i])==ffind(i))
{
x[i]=;
// continue;
}
else
{
sst[ffind(a[i])]=ffind(i);
}
/* for(int i=1;i<=n;i++)
{
cout<<i<<"=="<<sst[i]<<" ";
}cout<<endl;
for(int i=1;i<=n;i++)
{
cout<<x[i]<<"---- ";
}cout<<endl;*/
}
int ans = ;
for(int i = ; i <= n; i++)
{
//cout<<i<<endl;
if(x[i]) ans += dfs(a[i], i);
//cout<<ans<<endl;
}
printf("%d\n", ans);
return ;
}
D.cpp
R49 A-D D图有向有环图的更多相关文章
- 图->有向无环图->求关键路径
文字描述 与AOV-网相对应的是AOE-网(Activity on Edge)即边表示活动的网.AOE-网是一个带权的有向无环图.其中,顶点表示事件Event,弧表示活动,权表示活动持续的时间.通常, ...
- 图->有向无环图->拓扑排序
文字描述 关于有向无环图的基础定义: 一个无环的有向图称为有向无环图,简称DAG图(directed acycline graph).DAG图是一类较有向树更一般的特殊有向图. 举个例子说明有向无环图 ...
- 有向无环图的应用—AOV网 和 拓扑排序
有向无环图:无环的有向图,简称 DAG (Directed Acycline Graph) 图. 一个有向图的生成树是一个有向树,一个非连通有向图的若干强连通分量生成若干有向树,这些有向数形成生成森林 ...
- UML 用例图、顺序图、状态图、类图、包图、协作图、流程图
用例图.顺序图.状态图.类图.包图.协作图 面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling La ...
- 桌面显卡天梯图和桌面cpu天梯图
桌面cpu天梯图: 桌面显卡天梯图:
- 数据结构-图-Java实现:有向图 图存储(邻接矩阵),最小生成树,广度深度遍历,图的连通性,最短路径1
import java.util.ArrayList; import java.util.List; // 模块E public class AdjMatrixGraph<E> { pro ...
- JavaScript + SVG实现Web前端WorkFlow工作流DAG有向无环图
一.效果图展示及说明 (图一) (图二) 附注说明: 1. 图例都是DAG有向无环图的展现效果.两张图的区别为第二张图包含了多个分段关系.放置展示图片效果主要是为了说明该例子支持多段关系的展现(当前也 ...
- 图结构练习——判断给定图是否存在合法拓扑序列(dfs算法(第一个代码),邻接矩阵(前两个代码),邻接表(第三个代码))
sdut 2140 图结构练习——判断给定图是否存在合法拓扑序列 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 给定一个有向图 ...
- 湖南省第十二届大学生计算机程序设计竞赛 B 有向无环图 拓扑DP
1804: 有向无环图 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 187 Solved: 80[Submit][Status][Web Board ...
随机推荐
- hdu 2065 "红色病毒"问题(快速幂求模)
n=1 --> ans = 2 = 1*2 = 2^0(2^0+1) n=2 --> ans = 6 = 2*3 = 2^1(2^1+1) n=3 --> ans = 20 ...
- react router @4 和 vue路由 详解(六)vue怎么通过路由传参?
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 8.vue怎么通过路由传参? a.通配符传参数 //在定义路由的时候 { path: ' ...
- Weka中数据挖掘与机器学习系列之数据格式ARFF和CSV文件格式之间的转换(五)
不多说,直接上干货! Weka介绍: Weka是一个用Java编写的数据挖掘工具,能够运行在各种平台上.它不仅提供了可以直接用于数据挖掘的软件,还提供了src代码,使用者可以修改源代码,进行二次开发. ...
- Win10系列:UWP界面布局进阶6
在Windows 10的"个性化设置"中,用户可以更改计算机在锁屏状态下的背景图片,除此之外,也可以通过Windows应用商店应用程序将喜欢的图片设置为锁屏背景,下面通过一个示例来 ...
- laravel composer 安装指定版本以及基本的配置
1 安装指定的 laravel版本 以下的案例是安装5.2版本 composer create-project laravel/laravel=5.2.* --prefer-dist 2 配置 优化相 ...
- day5-python数据类型
数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...
- Android开发 ---基本UI组件3:单选按钮、多选按钮、下拉列表、提交按钮、重置按钮、取消按钮
Android开发 ---基本UI组件2 1.activity_main.xml 描述: 定义一个用户注册按钮 <?xml version="1.0" encoding=&q ...
- Zookeeper与Paxos
初识Zookeeper zookeeper为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名服务.配置管理和分布式锁等分布式的基础服务. 在解决分布式数据一致性方面,zk没有直接采用Pa ...
- 漫步Java------接口
接口 一.定义 具有相同行为(方法),但是不相关的类 二.特点 只是提供方法,不定义方法的具体实现. 一个类只能继承一个父类,但是接口却可以继承多个接口. 接口是一个引用类型的变量 接口没有构造方法, ...
- linux系统中对SSD硬盘优化的方法
在测试虚拟机往分布式存储中写数据的最大性能时,做的一些系统修改 1.ext4文件系统在SSD硬盘是最快的 2.查看当前系统支持的IO调度算法 dmesg | grep -i scheduler 3.查 ...