牛客网NOIP赛前集训营 提高组(第七场)
中国式家长 2
链接:https://www.nowcoder.com/acm/contest/179/A
来源:牛客网
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
输入描述:
输出描述:
输出一行两个整数代表最终剩下的行动力点数、获得的悟性的点数 如果挖取过程不合法则输出一行-1 -1 挖取不合法有以下几种可能: 1、试图挖取一个没有开启的格子 2、试图重复挖取一个格子 3、行动力小于10的时候尝试挖取一个悟性格 只要挖取过程中的任何一步不合法,挖取过程就不合法
输入例子:
2 2 20
10 0
0 0
1 0
0 0
3
1 1
1 2
2 1
输出例子:
0 20
-->
说明
最后一次挖取时,行动力已经不够了,因此最后一次挖取失败了
/*
一道没什么细节的模拟...
*/
#include<bits/stdc++.h> #define N 207 using namespace std;
int n,m,k,x,y,T,tmp,ans;
int a[N][N],can[N][N],vis[N][N];
int e[][]={{,},{-,},{,},{,-},{,},{,-},{-,},{-,-}}; inline int read()
{
int x=,f=;char c=getchar();
while(c>''||c<''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} int main()
{
n=read();m=read();k=read();tmp=k;
for(int i=;i<=n;i++) for(int j=;j<=m;j++)
a[i][j]=read();
for(int i=;i<=n;i++) for(int j=;j<=m;j++)
can[i][j]=read();
T=read();int flag=;
while(T--)
{
x=read();y=read();
if(!can[x][y]){flag=;break;}
if(vis[x][y]){flag=;break;}
if(a[x][y]<= && k<){flag=;break;}
vis[x][y]=;
if(a[x][y]<=) k-=,ans+=;
if(a[x][y]>) k+=a[x][y],k=min(k,tmp);
int xx,yy;
for(int i=;i<;i++)
{
xx=x+e[i][];yy=y+e[i][];
if(xx> && xx<=n && yy> && yy<=m) can[xx][yy]=;
}
}
if(flag) {printf("-1 -1\n");return ;}
else printf("%d %d\n",k,ans);
return ;
}
随机生成树
链接:https://www.nowcoder.com/acm/contest/179/B
来源:牛客网
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
1、1号点是根节点
2、对于2号点到N号点,每个点随机指定一个父亲。i号点(2 <= i <= N)的父亲在i的约数中随机挑选一个。(例如10号点的父亲可以是1号,2号,5号,7号点的父亲只能是1号点)
树生成完之后,牛牛可以计算出这个树有多少个联通块,一个联通块是一些点的集合,需要满足以下两个条件:
1、从集合中任取两个点都满足:两个点颜色相同,且这两个点之间存在一条树边组成的路径,路径上的所有点都和这两个点颜色相同
2、对于集合中的任意一个点和集合外的任意一个点:两点要么不同色,要么不存在一条树边组成的路径使得路径上所有点都和这两个点同色。
牛牛希望计算出生成的树中最多有多少个联通块
输入描述:
第一行一个整数N代表点数
输出描述:
输出一个整数最多有多少联通块
输入例子:
4
1 1 1 2
输出例子:
2
-->
说明
2号点和3号点的父亲一定是1,4号点父亲可能是1或者2,两种情况下联通块数都是2
/*
要求连通块尽量多。
考虑贪心,则当前点如果能连到和它颜色不同的点就对答案有贡献。
对一个点扫他的倍数哦按段是否连边计算答案即可。
*/
#include<bits/stdc++.h> #define N 500001 using namespace std;
int n,m,ans,cnt,flag;
int col[N],vis[N]; inline int read()
{
int x=,f=;char c=getchar();
while(c>''||c<''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} int main()
{
n=read();
for(int i=;i<=n;i++) col[i]=read();
for(int i=;i<=n;i++) for(int j=i;j<=n;j+=i)
{
if(col[j]!=col[i] && !vis[j]) {vis[j]=;cnt++;}
}
cout<<cnt+<<endl;
return ;
}
洞穴
链接:https://www.nowcoder.com/acm/contest/179/C
来源:牛客网
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
为了更好的探索洞穴,牛牛向你提出了Q个问题,每个问题给定两个节点a, b以及一个数l, 你需要告诉牛牛是否存在一条开始于a, 结束于b的路径,总长度为l。(路径中可以经过任意点、边多次,但只能沿着单向边给定的方向行走,不允许反向行走)。

代表牛牛的一个询问
50%的数据, 1 <= li <= 100
100%的数据, 1 <= N <= 100, 1 <= M <= 10000, 1 <= Q <= 1000, 1 <= li <= 109 ,1 <= ai, bi, ui, vi <= N
输出描述:
输出Q行依次回答牛牛的Q个询问
每行输出YES或NO,YES代表存在符合条件的路径,NO代表不存在
输入例子:
3 3
1 2
2 3
3 1
3
100 1 1
100 1 2
100 1 3
输出例子:
NO
YES
NO
-->
说明
这个图是一个三元环,从1号点开始走100步之后必定停在2号点上
/*
首先思考暴力怎么写。
f[a][i][b]表示从a到b经i步是否可达。
转移类似floyed ,枚举中间点c,用(f[a][i-1][c] && f[c][1][b])更新。
然后就发现i可以二进制拆分。
f[a][i][b]表示从a到b经2^i步可达,然后数据水就可以过掉这道题了2333
正解:因为f只有0,1两种状态,想到能用bitset优化。
首先预处理 若f[a][j][b]==1 则 f[a][j+1]|=f[b][j]
然后扫一遍各个系答案即可。
复杂度大约是n^3
*/
#include<bits/stdc++.h> #define N 107
#define S 31 using namespace std;
int n,m,u,v,l,a,b,Q;
bitset<N>f[N][],ans,tmp; int main()
{
scanf("%d%d",&n,&m);
for(int i=; i<=m; i++)
scanf("%d%d",&u,&v),f[u][][v]=;
for(int j=; j<=S; j++) for(int i=; i<=n; i++)
{
for(int k=; k<=n; k++)
if(f[i][j][k])f[i][j+]|=f[k][j];
}
scanf("%d",&Q);
while(Q--)
{
scanf("%d%d%d",&l,&a,&b);
ans.reset();ans[a]=;
for(int i=;i<=S;i++)
{
if(!(l>>i))break;
if((l>>i)&)
{
tmp=ans;
ans.reset();
for(int j=; j<=n; j++)if(tmp[j])ans|=f[j][i];
}
}
puts(ans[b]? "YES":"NO");
}
return ;
}
牛客网NOIP赛前集训营 提高组(第七场)的更多相关文章
- 牛客网NOIP赛前集训营-普及组(第二场)和 牛客网NOIP赛前集训营-提高组(第二场)解题报告
		
目录 牛客网NOIP赛前集训营-普及组(第二场) A 你好诶加币 B 最后一次 C 选择颜色 D 合法括号序列 牛客网NOIP赛前集训营-提高组(第二场) A 方差 B 分糖果 C 集合划分 牛客网N ...
 - 牛客网NOIP赛前集训营-提高组(第二场)A 方差
		
链接:https://www.nowcoder.com/acm/contest/173/A来源:牛客网 题目描述 一个长度为 m 的序列 b[1...m] ,我们定义它的方差为 ,其中 表示序列的平 ...
 - [牛客网NOIP赛前集训营-提高组(第一场)]C.保护
		
链接:https://www.nowcoder.com/acm/contest/172/C来源:牛客网 题目描述 C国有n个城市,城市间通过一个树形结构形成一个连通图.城市编号为1到n,其中1号城市为 ...
 - 牛客网NOIP赛前集训营-提高组(第一场)
		
牛客的这场比赛感觉真心不错!! 打得还是很过瘾的.水平也比较适合. T1:中位数: 题目描述 小N得到了一个非常神奇的序列A.这个序列长度为N,下标从1开始.A的一个子区间对应一个序列,可以由数对[l ...
 - 比赛总结——牛客网 NOIP赛前集训营提高组模拟第一场
		
第一场打的很惨淡啊 t1二分+前缀最小值没想出来,20分的暴力也挂了,只有10分 t2数位dp,调了半天,结果因为忘了判0的特殊情况WA了一个点,亏死 t3emmmm.. 不会 imone说是DSU ...
 - 牛客网NOIP赛前集训营-提高组(第一场)B 数数字
		
数数字 思路: 数位dp 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include< ...
 - 牛客网NOIP赛前集训营-提高组(第一场)A 中位数
		
中位数 思路: 二分答案 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include< ...
 - 牛客网NOIP赛前集训营 提高组 第5场 T2 旅游
		
[题解] 我们可以发现不在最小生成树上的边一定不能多次经过,因为一条不在最小生成树上的边(u,v)的边权比最小生成树上(u,v)之间的路径更长,选择不在最小生成树上的边一定不划算. 我们还需要确定最小 ...
 - 牛客网NOIP赛前集训营-提高组(第四场)游记
		
牛客网NOIP赛前集训营-提高组(第四场)游记 动态点分治 题目大意: \(T(t\le10000)\)组询问,求\([l,r]\)中\(k(l,r,k<2^{63})\)的非负整数次幂的数的个 ...
 - 牛客网NOIP赛前集训营-提高组(第四场)B区间
		
牛客网NOIP赛前集训营-提高组(第四场)B区间 题目描述 给出一个序列$ a_1 \dots a_n$. 定义一个区间 \([l,r]\) 是好的,当且仅当这个区间中存在一个 \(i\),使得 ...
 
随机推荐
- js高级程序设计第八章BOM(未完成,待续)
			
8.1window对象 BOM的核心对象是window,表示浏览器的一个实例. window对象有双重角色,既可以通过就是访问浏览器窗口的接口,又是ECMAscript规定的Global对象 8. ...
 - Codeforces 651A Joysticks【贪心】
			
题意: 两根操纵杆,每分钟操纵杆消耗电量2%,每分钟又可以给一个操纵杆充电1%(电量可以超过100%),当任何一个操纵杆电量降到0时,游戏停止.问最长游戏时间. 分析: 贪心,每次选择电量剩余最少的充 ...
 - UVA 129_ Krypton Factor
			
题意: 一个字符串含有两个相邻的重复的子串,则称这个串为容易的串,其他为困难的串,对于给定n,l,求出由前l个字符组成的字典序第n小的困难的串. 分析: 按字典序在字符串末尾增加新的字符,并从当前字符 ...
 - SQLSERVER数据库管理员的专用连接DAC
			
出处: http://www.cnblogs.com/lyhabc/archive/2012/09/23/2698702.html DAC:Dedicated Admin Connection 当SQ ...
 - 更新数据库中数据时出现: Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column  To disable safe mode, toggle the option in Preferences 问题
			
使用workbench在数据库中更新数据时报错: You are using safe update mode and you tried to update a table without a WH ...
 - spring boot项目自定义数据源,mybatisplus分页、逻辑删除无效解决方法
			
Spring Boot项目中数据源的配置可以通过两种方式实现: 1.application.yml或者application.properties配置 2.注入DataSource及SqlSessio ...
 - html5视频播放器 二 (功能实现及播放优化)
			
样式改写css,其中的一些按钮是在“阿里妈妈”上找的字体图标,就不向上传了. /* *CoolPlay视频播放器 * 2016年8月1日 * 627314658@qq.com * */ @font-f ...
 - 一 hadoop 相关介绍
			
hadoop 相关介绍 hadoop的首页有下面这样一段介绍.对hadoop是什么这个问题,做了简要的回答. The Apache™ Hadoop® project develops open-sou ...
 - 上下文( Contexts )
			
在 Indy9 的服务器中,链接特定(connection specific)的数据被作为线程类的一部分被存储. 实现这个要不然通过使用 thread.data 属性要不然通过继承对应的 thread ...
 - JAVA: 解决is expected to be of type but was actually of type com.sun.proxy.$Proxy的问题
			
修改spring-config文件中的transactionManager部分为 <tx:annotation-driven proxy-target-class="true" ...