Wannafly挑战赛27-A/B
链接:https://www.nowcoder.com/acm/contest/215/A
来源:牛客网
题目描述
给出长度为n的序列a, 求有多少对数对 (i, j) (1 <= i < j <= n) 满足 ai + aj 为完全平方数。
输入描述:
第一行一个整数 n (1 <= n <= 10
5
)
第二行 n 个整数 a
i
(1 <= a
i
<= 10
5
)
输出描述:
输出一个整数,表示满足上述条件的数对个数。
输入例子:
3
1 3 6
输出例子:
2
-->
说明
满足条件的有 (1, 2), (2, 3) 两对。 预处理出来 2e5以内的完全平方数(<500个),然后遍历每一个a[i],尝试枚举所有的完全平方数看是否可行即可,注意最后除二,因为
每一对都算了两次。
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
LL a[];
int vis[];
vector<LL>S;
int main(){
memset(vis,,sizeof(vis));
for(LL i=;i*i<=;++i)S.pb(i*i);
int n;
scanf("%d",&n);
for(int i=;i<=n;++i){
scanf("%lld",a+i);
vis[a[i]]++;
}
LL ans=;
for(int i=;i<=n;++i){
vis[a[i]]--;
for(auto x:S){
//cout<<x<<endl;
if(x-a[i]> && vis[x-a[i]]!=) ans+=vis[x-a[i]];
}
vis[a[i]]++;
}
cout<<ans/<<endl;
return ;
}
链接:https://www.nowcoder.com/acm/contest/215/B
来源:牛客网
题目描述
给出一棵仙人掌(每条边最多被包含于一个环,无自环,无重边,保证连通),要求用最少的颜色对其顶点染色,满足每条边两个端点的颜色不同,输出最小颜色数即可
输入描述:
第一行包括两个整数n,m,表示顶点数和边数
n <= 100000, m <= 200000
接下来m行每行两个整数u,v,表示u,v之间有一条无向边,保证数据合法
输出描述:
一行一个整数表示最小颜色数
输入例子:
3 4
1 2
2 3
3 4
1 4
输出例子:
2
-->
观察发现,只要出现奇环,那么答案就是3,否则答案就是2.没有特判一个点的情况也AC了= =
找环的长度只需要dfs一下,d[i]记录根到此点的距离,u->x访问第二次的时候,环长度就是d[u]+1-d[x]。
#include<bits/stdc++.h>
using namespace std;
const int maxn=;
std::vector<int> g[maxn];
int d[maxn]={-};
bool vis[maxn];
void dfs(int u,int fa){
vis[u]=;
d[u]=d[fa]+;
for(auto x:g[u]){
if(x==fa) continue;
if(vis[x]){
if((d[u]+-d[x])%==){
cout<<<<endl;
exit();
}
}
else{
dfs(x,u);
}
}
}
int main(){
int n,m,u,v;
cin>>n>>m;
while(m--){
scanf("%d%d",&u,&v);
g[u].push_back(v);
g[v].push_back(u);
}
dfs(,);
cout<<<<endl;
return ;
}
Wannafly挑战赛27-A/B的更多相关文章
- Wannafly挑战赛27
Wannafly挑战赛27 我打的第一场$Wannafly$是第25场,$T2$竟然出了一个几何题?而且还把我好不容易升上绿的$Rating$又降回了蓝名...之后再不敢打$Wannafly$了. 由 ...
- Wannafly挑战赛27 D绿魔法师
链接Wannafly挑战赛27 D绿魔法师 一个空的可重集合\(S\),\(n\)次操作,每次操作给出\(x,k,p\),要求支持下列操作: 1.在\(S\)中加入\(x\). 2.求\[\sum_{ ...
- Wannafly挑战赛27 C蓝魔法师
链接Wannafly挑战赛27 C蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于\(k\),\(n,k\leq 2*10^3\) 假设我们正在考虑\(i\)这个子树,那么 ...
- 牛客网 Wannafly挑战赛27 蓝魔法师
蓝魔法师 链接: https://www.nowcoder.com/acm/contest/215/C 来源:牛客网 题目描述 "你,你认错人了.我真的,真的不是食人魔."--蓝魔 ...
- 牛客 Wannafly挑战赛27 D 绿魔法师
传送门 \(\color{green}{solution}\) 分析下,在\(1e5+1\)内,一个数的约数个数最多为\(2^{6}\)个,所以我们可以考虑枚举约数 复杂度\(O(N^{2^{6 \t ...
- Wannafly挑战赛25游记
Wannafly挑战赛25游记 A - 因子 题目大意: 令\(x=n!(n\le10^{12})\),给定一大于\(1\)的正整数\(p(p\le10000)\)求一个\(k\)使得\(p^k|x\ ...
- Wannafly 挑战赛 19 参考题解
这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wanna ...
- Wannafly挑战赛21A
题目链接 Wannafly挑战赛21A 题解 代码 #include <cstdio> #include <cmath> #define MAX 1000005 #define ...
- Wannafly挑战赛24游记
Wannafly挑战赛24游记 A - 石子游戏 题目大意: A和B两人玩游戏,总共有\(n(n\le10^4)\)堆石子,轮流进行一些操作,不能进行下去的人则输掉这局游戏.操作包含以下两种: 把石子 ...
- Wannafly挑战赛25C 期望操作数
Wannafly挑战赛25C 期望操作数 简单题啦 \(f[i]=\frac{\sum_{j<=i}f[j]}{i}+1\) \(f[i]=\frac{f[i]}{i}+\frac{\sum_{ ...
随机推荐
- (转) How a Kalman filter works, in pictures
How a Kalman filter works, in pictures I have to tell you about the Kalman filter, because what it d ...
- Vue属性中带’-‘的处理方式
我们在写属性时经常会加入’-‘来进行分词,比如:<panda from-here=”China”></panda>,那这时我们在props里如果写成props:[‘form-h ...
- IntelliJ IDEA java selenium
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler ...
- _itemmod_rate_stone
`entry`几率宝石物品ID `type` 1--合成对应_itemmod_exchange_item 2--强化对应_itemmod_exchange_item 3-附魔(除itemMask = ...
- 浅谈 equals 和 == 的区别
在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str2 = new String(&qu ...
- 百度“搜索设置”之基于定位下拉框或者需要点击link才显示的下拉框,二次定位与多次定位实现的实际效果区别
还是基于上次那个练习的后续出现的思考,http://www.cnblogs.com/8013-cmf/p/6555790.html 界面: 源码: 写法如下: 继续解释这两种的区别: 1.其实基于定 ...
- 【C#】侦听文件系统更改通知 FileSystemWatcher 类
using System; using System.IO; using System.Security.Permissions; public class Watcher { public stat ...
- Android JNI 传递对象
JNI初步入门后,在传递数据的时候,遇到一个需求:有多个数据需要在Java与C代码之间进行传递.如果都做为函数参数传入,则函数很长很难看,并且多个数据的返回也不好实现.所以想到了把数据打包后传递.这在 ...
- 学习笔记19—dpabi错误集
1.回归斜边量的时候千万不要用红色标记的地方,而要用紫色标记的地方
- jS冒泡优化
<script> //冒泡优化 将一个数组中的值从小到大排列 var arr=[65,85,12,36,75,46,50]; var sorted=true; ...