首页 > 其他分享 >【比赛】8.14

【比赛】8.14

时间:2023-08-14 13:14:34浏览次数:48  
标签:rt ch 比赛 int while && 8.14 define

Ⅰ.妹子




第一题考虑被包含的矩阵需不需要旋转,如上图,我们可以枚举 \(x\) 来判断是否可行。

#include<bits/stdc++.h>
#define db double
#define eqs 1e-6
using namespace std;
int read(){
	int x = 0, f = 1; char ch = getchar();
	while(ch < '0' || ch > '9'){if(ch == '-') f = -f; ch = getchar();}
	while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar();}
	return x * f;
}
int T, a1, a2, b1, b2;
int main(){
//	freopen("girls.in", "r", stdin);
//	freopen("girls.out", "w", stdout);
	T = read();
	while(T--){
		bool flag = 0;
		a1 = read(), b1 = read(), a2 = read(), b2 = read();
		if(a1 > b1) swap(a1, b1);
		if(a2 > b2) swap(a2, b2);
		int s1 = a1 * b1, s2 = a2 * b2;
		if(s1 == s2){
			if(a1 == a2 && b1 == b2) printf("Yes\n");
			else printf("No\n");
			continue; 
		}else if(s1 > s2) swap(a1, a2), swap(b1, b2);
		if(a1 <= a2 && b1 <= b2){
			printf("Yes\n"); continue;
		}
		db A1 = a1, A2 = a2, B1 = b1, B2 = b2;
		for(int i = 1; i <= a1 * 100; ++i){
			db x = i / 100.0; 
			db y = sqrt(a1 * a1 - x * x);
			db xx = x * B1 / A1;
			db yy = y * B1 / A1;
			if(y + xx + eqs < B2 && x + yy + eqs < A2){
				flag = 1;
				printf("Yes\n");
				break;
			}
		}
		if(!flag) printf("No\n");
	}
//	fclose(stdin);
//	fclose(stdout);
	return 0;
} 

二.旅程


倒序+floyd

#include<bits/stdc++.h>
#define db double
#define eqs 1e-6
#define INF 0x3f3f3f3f
using namespace std;
const int N = 2e3 + 67, M = 1e5 + 67;
int read(){
	int x = 0, f = 1; char ch = getchar();
	while(ch < '0' || ch > '9'){if(ch == '-') f = -f; ch = getchar();}
	while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar();}
	return x * f;
}
int n, m;
struct Query{
	int opt, x, y, ans;
}Q[M];
int a[N][N], dis[N][N];
int main(){
//	freopen("journey.in", "r", stdin);
//	freopen("journey.out", "w", stdout);
	n = read(), m = read();
	memset(dis, 0x3f, sizeof(dis));
	for(int i = 1; i <= n; ++i)
		for(int j = 1; j <= n; ++j)
			dis[i][j] = a[i][j] = read();
	for(int i = 1; i <= m; ++i){
		Q[i].opt = read(), Q[i].x = read(), Q[i].y = read();
		if(Q[i].opt == 1) dis[Q[i].x][Q[i].y] = INF;
	}
	for(int k = 1; k <= n; ++k)
		for(int i = 1; i <= n; ++i)
			for(int j = 1; j <= n; ++j)
				dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);
	for(int o = m; o; --o){
		int x = Q[o].x, y = Q[o].y;
		if(Q[o].opt == 1){
			dis[x][y] = min(dis[x][y], a[x][y]);
			for(int k = 1; k <= n; ++k) dis[x][k] = min(dis[x][k], dis[x][y] + dis[y][k]);
			for(int i = 1; i <= n; ++i)
				for(int j = 1; j <= n; ++j)
					dis[i][j] = min(dis[i][j], dis[i][x] + dis[x][j]); 
		} else{
			if(dis[x][y] == INF) Q[o].ans = -1;
			else Q[o].ans = dis[x][y];
		}
	}
	for(int i = 1; i <= m; ++i){
		if(Q[i].opt == 2) printf("%d\n", Q[i].ans);
	}
//	fclose(stdin);
//	fclose(stdout);
	return 0;
} 

Ⅲ.老大


显然奖杯一定在直径上。求最大值最小,二分。最优解必定是对称的,都离直径端点二分的距离,在 \(O(n)\) 判断是否有可行。

#include<bits/stdc++.h>
#define db double
#define eqs 1e-6
#define INF 0x3f3f3f3f
using namespace std;
const int N = 2e5 + 67;
int read(){
	int x = 0, f = 1; char ch = getchar();
	while(ch < '0' || ch > '9'){if(ch == '-') f = -f; ch = getchar();}
	while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar();}
	return x * f;
}
int n, tot, rt;
int Head[N], to[N << 1], Next[N << 1];
int d[N], nxt[N], col[N], D[N];
void add(int u, int v){
	to[++tot] = v, Next[tot] = Head[u], Head[u] = tot;
}
void dfs1(int x, int fa){
	d[x] = d[fa] + 1;
	if(d[x] > d[rt]) rt = x;
	for(int i = Head[x]; i; i = Next[i]){
		int y = to[i]; if(y == fa) continue;
		dfs1(y, x);
	}
}
void dfs2(int x, int fa){
	for(int i = Head[x]; i; i = Next[i]){
		int y = to[i]; if(y == fa) continue;
		dfs2(y, x); 
		if(d[y] + 1 > d[x])  d[x] = d[y] + 1, nxt[x] = y;
	}
}
void dfs3(int x, int fa){
	for(int i = Head[x]; i; i = Next[i]){
		int y = to[i]; if(y == fa) continue;
		dfs3(y, x); 
		if(D[y] + 1 > D[x] && !col[y])  D[x] = D[y] + 1;
	}
}
bool check(int len){
	int x = rt, ll = 0, cnt = 0;
	int f1 = 0, f2 = 0;
	while(x){
		if(ll >= len && !f1) f1 = x;
		if(d[x] == len) f2 = x;
		x = nxt[x];
		++ll;
	}
	x = rt;
	while(x){
		if(abs(d[x] - d[f1]) + D[x]> len && abs(d[x] - d[f2]) + D[x] > len) return false; 
		x = nxt[x];
	}
	return true;
}
int main(){
//	freopen("ob.in", "r", stdin);
//	freopen("ob.out", "w", stdout);
	n = read();
	for(int i = 1; i < n; ++i){
		int u = read(), v = read();
		add(u, v), add(v, u);
	}
	dfs1(1, 0); 
	memset(d, 0, sizeof(d));
	dfs2(rt, 0);
	int x = rt;
	while(x) col[x] = 1, x = nxt[x];
	dfs3(rt, 0);
	int l = 0, r = 200000, ans;
//	cout << check(2) << endl;
	while(l <= r){
		int mid = (l + r) >> 1;
		if(check(mid)) ans = mid, r = mid - 1;
		else l = mid + 1;
	}
	printf("%d\n", ans);
//	fclose(stdin);
//	fclose(stdout);
	return 0;
} 

Ⅳ.序列

标签:rt,ch,比赛,int,while,&&,8.14,define
From: https://www.cnblogs.com/jiangchen4122/p/17628343.html

相关文章

  • 某谷 Rated 比赛泛做
    P9535「YsOI2023」连通图计数非常好题目,爱来自湖南。\(m=n-1\)等价于给定度数求树的个数,这是一个经典题,在「HNOI2004」树的计数有描述,即利用Prufer序列得到答案为\(\binom{n-2}{(d_1-1)(d_2-1)\ldots(d_n-1)}\)。\(m=n\)即基环树,对于整个大环建立一个虚点,该点向环上的所......
  • 【比赛】8.13
    Ⅰ.波状数列考试时想到的是用\(f_{i,0/1}\)表示用了前\(i\)个数,其中第一个数是山峰还是山谷。比较麻烦。之前看题解做的时候,用\(f_{i,j}\)表示用了前\(i\)个数,其中第一个数是\(j\),滚动数组优化一下。点击查看代码#include<bits/stdc++.h>#defineintlonglongc......
  • 2023.8.7-2023.8.14暑假第五周博客
    2023.8.7今天人在外,因此博客休息一天图片如下 2023.8.8今天对hive有了进一步的了解首先要明确一个流程当我打开三台虚拟机,用finalshell连接上后首先要使用如下命令1.su-hadoop切换到hadoop用户,大部分操作都必须在hadoop用户中完成,而千万不要再root中,因为root用户一......
  • 20230810比赛
    T1队列变换DescriptionFJ打算带他的N(1<=N<=30,000)头奶牛去参加一年一度的“全美农场主大奖赛”。在这场比赛中,每个参赛者都必须让他的奶牛排成一列,然后领她们从裁判席前依次走过。今年,竞赛委员会在接受队伍报名时,采用了一种新的登记规则:他们把所有队伍中奶牛名字的首字......
  • 人工智能/数据科学比赛汇总 2019.9
    Github:iphysresearch/DataSciComp本项目由ApacheCN强力支持。微博|知乎|简书|全球数据智能大赛(2019)——“数字人体”赛场一:肺部CT多病种智能诊断https://tianchi.aliyun.com/competition/entrance/231724/6月24-9月09,2019//Hostby天池//Prize:$900,000Note:......
  • 射击比赛
    1.题目给定一个射击比赛成绩单包含多个选手若干次射击的成绩分数请对每个选手按其最高三个分数之和进行降序排名输出降序排名后的选手ID序列条件如下:一个选手可以有多个射击成绩的分数且次序不固定如果一个选手成绩小于三个则认为选手的所有成绩无效排名忽略该选手......
  • 【比赛·总结】2023.8 学而思Z6模拟赛
    2023.8学而思Z6模拟赛考试界面:(隐藏)题解反思在本次考试中,作者惨遭爆零。警钟长鸣\(3\)分钟。作者认为,爆零的主要原因在于作者并没有遵从“遇到难题则跳过”的原则,疯狂卡在第一题上,从第\(0\)分钟一直到最后\(1\)秒,除了其中写了一个第二题的暴力,还因为读错题没得分以外,其......
  • 篮球比赛现场信息管理实时展示系统-开发随笔1
    关键字:篮球比赛排球比赛足球比赛 比赛管理训练管理训练数据采集实时展示比赛报分比分展示LED大屏场馆大屏[当前现状]体育场馆内的LED显示屏作为广告、比赛信息显示和比赛实况播放最重要的载体之一,已成为现代化体育场馆的必备设施。各类体育赛事通过显示屏传达给更多......
  • 「闲话」NOI 2023 比赛总结
    Day1打开题面,看到两道计数题,有点小惊讶——根据以往的题目类型看,NOI在一天中出现两道计数类型的题目确实比较罕见。不过冷静了一下,也许这也不是坏事。毕竟数数题是我很擅长的题目。但在NOI以后我意识到并不是这样。读题的时候就觉得这个T1应该非常easy,那就先开T1,越想......
  • CTF比赛复现(我愿称之为狱后改造)
    CTF比赛复现(我愿称之为狱后改造)DASCTF2023&0X401七月暑期挑战赛ez_cms后台文件包含漏洞,弱口令密码登入后台admin123456pearcmd文件包含漏洞W4师傅的关于利用pearcmd进行文件包含的一些总结p神pecl是PHP中用于管理扩展而使用的命令行工具,而pear是pecl依赖的类库。在7.......