2017.08.08小结
来源:互联网 发布:淘宝旺铺智能版教程 编辑:程序博客网 时间:2024/04/29 03:57
第二十二题:
图论kruskal,一般结合并查集进行贪心思想.
先进行排序sort
pre[i]=i头结点赋值
a,b,=find()找到头节点
(a!=b){进行操作,pre[b]=a//合并}
结束.
#include<iostream>
#include<cstdio>
#include<algorithm>
#define N 510
using namespace std;
int n,q,pre[N];
struct point
{
int x,y,len;
}p[N*N];
int cmp(point x,point y)
{
return x.len<y.len;
}
int find(int x)
{
while(x!=pre[x])
x=pre[x];
return x;
}
void kruskal()
{
int i,mix,a,b;
mix=0;
sort(p,p+q,cmp);
for(i=1;i<=n;i++)
pre[i]=i;
for(i=0;i<q;i++)
{
a=find(p[i].x);
b=find(p[i].y);
if(a!=b)
{
if(p[i].len>mix)
mix=p[i].len;
pre[b]=a;
}
}
cout<<mix<<endl;
}
void input()
{
scanf("%d",&n);
q=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
scanf("%d",&p[q].len);
p[q].x=i;p[q].y=j;
q++;
}
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
input();
kruskal();
}
return 0;
}
练习赛第一题:
题意
对A和B两个数轮流操作,第i轮对A删除2*i-1的值,对B删除2*i的值,问哪个谁先小于0?A先手。
只需要根据等差数列求和列出两个不等式即可:
对于A来说,直到第i轮消耗的数量为:i*i<=a
对于B来说,直到第i轮消耗的数量为:i*(i+1)<=b
因此,只要求最大的ia和ib即可,二者中小的先消耗光,而相等的时候答案就输出A,因为A先手。
#include<iostream>
#include<cstring>
using namespace std;
long long a,b,x,y;
int main()
{
cin>>a>>b;
for(x=0;x*x<=a;x++);
for(y=0;y*(y+1)<=b;y++);
if(x<=y) cout<<"Vladik"<<endl;
else cout<<"Valera"<<endl;
return 0;
}
第二题:
题意:给出一串数,然后有m个问题,每个问题给出一个区间 【l,r】对区间内的数进行排序,问第x个数的位置是否改变。
分析:只需要统计区间内小于 a【x】的数有多少个 然后判断 小于a【x】的数量是否等于 x-l;
#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
int a[500000];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=0;i<m;i++)
{
int l,r,x;
cin>>l>>r>>x;
int ans=a[x];
int num=0;
for(int j=l;j<=r;j++)
{
if(a[j]<ans)
num++;
}
if(num!=x-l)
cout<<"No"<<endl;
else
cout<<"Yes"<<endl;
}
}
- 2017.08.08小结
- 2017.08.01小结
- 2017.08.02小结
- 2017.08.03小结
- 2017.08.04小结
- 2017.08.05小结
- 2017.08.07小结
- 2017.08.09小结
- 2017.08.10小结
- 2017.08.11小结
- 2017.08.12小结
- 2017.08.22小结
- 2017.08.24小结
- 2017 08 11 小结
- 2017 08 12 小结
- 2017 08 13 小结
- 2017 08 20 小结
- 2017 08 21 小结
- Django中并发问题
- Linux驱动开发概述
- 公务员面试七大忌讳(1)
- Hive远程模式
- 校门外的树(noi 1.6-06)
- 2017.08.08小结
- UI 一一 使用ScrollView和PageController实现引导页分页效果
- BOM
- 集训第九天(2017/8/8):刷题+做比赛
- NBA球员力量训练方法!感受职业球员日常训练!
- Java中的并发工具类--CyclicBarrie
- AOP实现原理(动态代理和反射技术)
- 关灯问题
- JAVA——String字符串详解(上)