2019省赛训练组队赛3.26周二---FJUT 2016
A.Minimum’s Revenge
Mr. Frog is wondering about the total weight of the minimum spanning tree. Can you help him?
InputThe first line contains only one integer T (T≤100T≤100), which indicates the number of test cases.
For each test case, the first line contains only one integer n (2≤n≤1092≤n≤109), indicating the number of vertices.
OutputFor each test case, output one line "Case #x:y",where x is the case number (starting from 1) and y is the total weight of the minimum spanning tree.
Sample Input
2
2
3
Sample Output
Case #1: 2
Case #2: 5
代码:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
int T,tot=;
cin>>T;
while(T--)
{
ll n;
scanf("%lld",&n);
ll ans=(n+)*n/;
ans--;
printf("Case #%d: %lld\n",++tot,ans);
} return ;
}
C.Mr. Frog’s Problem
He gives you two positive integers A and B, and your task is to find all pairs of integers (C, D), such that A≤C≤B,A≤D≤BA≤C≤B,A≤D≤B and AB+BA≤CD+DCAB+BA≤CD+DC
Inputfirst line contains only one integer T (T≤125T≤125), which indicates the number of test cases. Each test case contains two integers A and B (1≤A≤B≤10181≤A≤B≤1018).OutputFor each test case, first output one line "Case #x:", where x is the case number (starting from 1).
Then in a new line, print an integer s indicating the number of pairs you find.
In each of the following s lines, print a pair of integers C and D. pairs should be sorted by C, and then by D in ascending order.
Sample Input
2
10 10
9 27
Sample Output
Case #1:
1
10 10
Case #2:
2
9 27
27 9
代码:
#include <bits/stdc++.h>
using namespace std; int T;
long long A, B, C, D; int main() {
scanf("%d", &T);
for(int t = ; t <= T; t ++) {
scanf("%lld%lld", &A, &B);
printf("Case #%d:\n", t);
if(A == B) {
printf("1\n");
printf("%lld %lld\n", A, B);
} else {
printf("2\n");
printf("%lld %lld\n", A, B);
printf("%lld %lld\n", B ,A);
}
}//
return ;
}
E.Mr. Frog’s Game
In this game, if you can draw at most three horizontal or vertical head-and-tail-connected lines over the empty grids(the lines can be out of the whole board) to connect two non-empty grids with the same symbol or the two non-empty grids with the same symbol are adjacent, then you can change these two grids into empty and get several more seconds to continue the game.
Now, Mr. Frog starts a new game (that means there is no empty grid in the board). If there are no pair of grids that can be removed together,Mr. Frog will say ”I’m angry” and criticize you.
Mr. Frog is battle-scarred and has seen many things, so he can check the board in a very short time, maybe one second. As a Hong Kong Journalist, what you should do is to check the board more quickly than him, and then you can get out of the room before Mr. Frog being angry.
InputThe first line contains only one integer T (T≤500T≤500), which indicates the number of test cases.
For each test case, the first line contains two integers n and m (1≤n,m≤301≤n,m≤30).
In the next n lines, each line contains m integers, j-th number in the i-th line means the symbol on the grid(the same number means the same symbol on the grid).
OutputFor each test case, there should be one line in the output.
You should output “Case #x: y”,where x is the case number(starting from 1), and y is a string representing the answer of the question. If there are at least one pair of grids that can be removed together, the y is “Yes”(without quote), else y is “No”.Sample Input
2
3 3
1 2 1
2 1 2
1 2 1
3 3
1 2 3
2 1 2
3 2 1
Sample Output
Case #1: Yes
Case #2: No
代码:
#include <bits/stdc++.h>
using namespace std;
int a[][];
map <int,int> Map;
int main()
{
int T,tot=;
cin>>T;
while(T--)
{
Map.clear();
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
scanf("%d",&a[i][j]);
}
} int flag=;
for(int i=;i<=m;i++)
{
if(!Map[a[][i]]) Map[a[][i]]=;
else flag++;
}
if(flag)
{
printf("Case #%d: Yes\n",++tot);
continue;
}
Map.clear();
for(int i=;i<=m;i++)
{
if(!Map[a[n][i]]) Map[a[n][i]]=;
else flag++;
}
if(flag)
{
printf("Case #%d: Yes\n",++tot);
continue;
}
Map.clear();
for(int i=;i<=n;i++)
{
if(!Map[a[i][]]) Map[a[i][]]=;
else flag++;
}
if(flag)
{
printf("Case #%d: Yes\n",++tot);
continue;
}
Map.clear();
for(int i=;i<=n;i++)
{
if(!Map[a[i][m]]) Map[a[i][m]]=;
else flag++;
}
if(flag)
{
printf("Case #%d: Yes\n",++tot);
continue;
} for(int i=;i<=n;i++)
{
for(int j=;j<=m-;j++)
{
if(a[i][j]==a[i][j+])
{
flag++;
}
}
if(flag) break;
}
if(flag)
{
printf("Case #%d: Yes\n",++tot);
continue;
} for(int i=;i<=m;i++)
{
for(int j=;j<=n-;j++)
{
if(a[j][i]==a[j+][i])
{
flag++;
}
}
if(flag) break;
}
if(flag)
{
printf("Case #%d: Yes\n",++tot);
continue;
}
else
{
printf("Case #%d: No\n",++tot);
}
} return ;
}
F.Auxiliary Set
An auxiliary set is a set containing vertices satisfying at least one of the two conditions:
∙∙It is an important vertex
∙∙It is the least common ancestor of two different important vertices.
You are given a tree with n vertices (1 is the root) and q queries.
Each query is a set of nodes which indicates the unimportant vertices in the tree. Answer the size (i.e. number of vertices) of the auxiliary set for each query.
InputThe first line contains only one integer T (T≤1000T≤1000), which indicates the number of test cases.
For each test case, the first line contains two integers n (1≤n≤1000001≤n≤100000), q (0≤q≤1000000≤q≤100000).
In the following n -1 lines, the i-th line contains two integers ui,vi(1≤ui,vi≤n)ui,vi(1≤ui,vi≤n)indicating there is an edge between uiuii and vivi in the tree.
In the next q lines, the i-th line first comes with an integer mi(1≤mi≤100000)mi(1≤mi≤100000)indicating the number of vertices in the query set.Then comes with mi different integers, indicating the nodes in the query set.
It is guaranteed that ∑qi=1mi≤100000∑i=1qmi≤100000.
It is also guaranteed that the number of test cases in which n≥1000n≥1000 or ∑qi=1mi≥1000∑i=1qmi≥1000 is no more than 10.
OutputFor each test case, first output one line "Case #x:", where x is the case number (starting from 1).
Then q lines follow, i-th line contains an integer indicating the size of the auxiliary set for each query.
Sample Input
1
6 3
6 4
2 5
5 4
1 5
5 3
3 1 2 3
1 5
3 3 1 4
Sample Output
Case #1:
3
6
3
代码:
#include <bits/stdc++.h>
using namespace std; const int maxn = 1e5 + ;
int T;
int a[maxn];
int deep[maxn], fa[maxn], son[maxn], soon[maxn];
vector<int> v[maxn]; void dfs(int child, int parent) {
fa[child] = parent;
deep[child] = deep[parent] + ;
son[child] = ; for(int i = ; i < v[child].size(); i ++) {
if(v[child][i] != parent) {
dfs(v[child][i], child);
son[child] ++;
}
} } bool cmp(int a, int b) {
return deep[a] > deep[b];
} int main() {
scanf("%d", &T);
for(int t = ; t <= T; t ++) {
int N, M;
scanf("%d%d", &N, &M); for(int i = ; i <= N; i ++)
v[i].clear(); for(int i = ; i < N - ; i ++) {
int st, en;
scanf("%d%d", &st, &en);
v[st].push_back(en);
v[en].push_back(st);
} printf("Case #%d:\n", t);
dfs(, );
while(M --) {
int K;
scanf("%d", &K);
int ans = N - K;
for(int i = ; i < K; i ++) {
scanf("%d", &a[i]);
} sort(a, a + K, cmp); for(int i = ; i < K; i ++)
soon[a[i]] = son[a[i]]; for(int i = ; i < K; i ++) {
if(soon[a[i]] >= ) ans ++;
else if(soon[a[i]] == )
soon[fa[a[i]]] --;
} printf("%d\n", ans); } }
return ;
}
2019省赛训练组队赛3.26周二---FJUT 2016的更多相关文章
- 2019省赛训练组队赛3.31周四-17fj
https://vjudge.net/contest/289558#overview A - Frog Therearex frogs and y chicken in a garden. Kim f ...
- hdu6578 2019湖南省赛D题Modulo Nine 经典dp
目录 题目 解析 AC_Code @ 题目 第一题题意是一共有{0,1,2,3}四种数字供选择,问有多少个长度为n的序列满足所有m个条件,每个条件是说区间[L,R]内必须有恰好x个不同的数字. 第二题 ...
- QFNU-ACM 2019.5.23组队赛 2019山东省赛复现
A.Calandar 题意:一年12个月,一个月30天,5天一周,已知某天的年月日星期数,求所给年月日的星期数是多少 思路:直接进行计算,其实每个月每年都是等长度的就使得计算的时候忽略年月,可以直接进 ...
- 2019牛客训练赛第七场 C Governing sand 权值线段树+贪心
Governing sand 题意 森林里有m种树木,每种树木有一定高度,并且砍掉他要消耗一定的代价,问消耗最少多少代价可以使得森林中最高的树木大于所有树的一半 分析 复杂度分析:n 1e5种树木,并 ...
- X-NUCA 2017 web专题赛训练题 阳光总在风雨后和default wp
0X0.前言 X-NUCA 2017来了,想起2016 web专题赛,题目都打不开,希望这次主办方能够搞好点吧!还没开赛,依照惯例会有赛前指导,放一些训练题让CTFer们好感受一下题目. 题目有一大 ...
- acm省赛选拔组队赛经验谈
省赛组队赛已经进行5场了,过半了. 从曾经的不会组队到如今逐渐磨合,尽管每次都有遗憾,可是我认为我们一直在进步.有些失误是要记录下来下次不能再犯的! 经验: 1:上场開始一定要有人(英语能力和算法综合 ...
- 2019新生赛 %%%xxh
笔记.md ...
- PTA天梯赛训练题L1-064:估值一亿的AI核心代码(字符串模拟)
Update:smz说regex秒过Orz,yzd记在这里了. 听说今年天梯赛有个烦人的模拟,我便被队友逼着试做一下……一发15,二发20.记一记,要不然枉费我写这么久…… 自己还是代码能力太菜了,校 ...
- [CVPR 2019]NOCS代码训练、检测与评估
Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation 训练.检测与评估 本文 ...
随机推荐
- appium+robotframework常见技巧总结
1.如何输入中文 方法: 在open application参数最后,新增unicodeKeyboard=True resetKeyboard=True:不加入这两个参数时,中文无法输入 2.如 ...
- Linux 小知识翻译 - 「服务器」
这次聊聊 「服务器」 这个词. 可能会觉得为什么「突然问这个?」.接下来请先考虑一下下面的题目. A) 「Web服务器是指提供网页数据的软件」 B) 「Web服务器是指运行上述软件的硬件」 那么,究竟 ...
- MATLAB简易画图
给定一组特殊点,连线作图 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 以成绩隶属函数为例: score.m cj_x1=[ 0.1]; cj_y1= ...
- 怎样用命令行开启或关闭Windows服务
怎样用命令行开启或关闭Windows服务 本篇博客主要包含一个内容: 怎样用命令行开启或关闭Windows服务 闲话少叙,直奔主题. 1.在桌面右击新建一个文本文档,然后打开. 2.找到需要开启或关闭 ...
- [WeChall] Training: Encodings I (Training, Encoding)
Training: Encodings I (Training, Encoding) We intercepted this message from one challenger to anothe ...
- WPF设计の不规则窗体
我们在工作中,经常会需要画一些不规则的窗体,现在总结如下. 一.利用VisualBrush实现.这依赖于VisualBrush的特性,任何控件可以作为画刷,而画刷又可以作为背景. 此种方法可以用于实现 ...
- 解决Zabbix网页端Get value error: cannot connect to [[192.168.238.139]:10050]: [113] No route to host问题
在安装配置完zabbix_agentd以后,网页端出现 Get value error: cannot connect to [[192.168.238.139]:10050]: [113] No ...
- 使用VMWare虚拟mac系统,设置网络的正确姿势
1. 启动mac虚拟机: 2. 虚拟机-虚拟机设置-网络适配器-选择NAT模式: 3. 打开mac的网络设置,选择使用DHCP模式,并设置DNS服务器为win的DNS: 4. 回到win,控制面板-网 ...
- MyEclipse使用总结——设置MyEclipse开发项目时使用的JDK
安装好MyEclipse之后,在MyEclipse中开发项目时,默认使用的是MyEclipse是自带的JDK,如下图所示: 如果我们需要使用自己安装好的JDK,那么就需要在MyEclipse中重新设置 ...
- oracle(环境搭建二)
Configuration oracle database Password file(非必要) cd $ORACLE_HOME/dbs/ ls 查看是否有init.ora 创建密码文件 ...