比赛记录 2021/10/6
赛场A题
1010Smzzl with Tropical Taste 签到题
题目大意:在一个水池内有体积为V的冰红茶,商店老板会以每秒qV的速度往水池当中倒冰红茶,而另一个人以每秒pV的速度进行喝冰红茶,问是否对于任意的冰红茶G,总能有时间T使得,当t大于T的时候,喝的冰红茶的数量大于G。
解题思路:每秒喝冰红茶的速度与加冰红茶的速度与体积是成正相关的,当喝的速度大于加的速度的时候,肯定会有喝完的时候,此时,加的速度变为0所有一定无法达成条件,只有当加的速度大于等于喝的速度才能够使得冰红茶不减少甚至更多。
1007 基环树
Link with Limit
建图,点 向点 连边,那么 迭代的过程实质上是在图上行走的过程。原题实际上问的是每一个环的
点权平均值是否相同,使用任意方法找出所有环并求出平均值即可。
贴出标程里 优美的基环树找环
#include <stdio.h>
#include <queue>
#define MN 100000
typedef long long ll;
int n,a[MN+5],din[MN+5];
void solve(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
din[i] = 0;
}
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
din[a[i]]++;
}
std::queue<int> Q;//queue就是队列
for(int i=1;i<=n;i++){
if(din[i]==0) Q.push(i);
}
while(!Q.empty()){
int u = Q.front();
Q.pop();
din[a[u]]--;
if(din[a[u]]==0){
Q.push(a[u