[暴力题解&&考试反思] 双十一欢乐赛(联赛膜你测试32)
前言:
今天考试很迷糊。从7点考到11点半,我大概从7点睡到9点。隐隐约约看到旁边的狗哥敲了好几个题,我才开始写代码。然后因为还是很困,而且T1迷迷糊糊调了好长时间,T3T4的暴力就懒的写了。。。
估分120,实际得分120。
暴力写法如下:
T1 循环依赖
一眼的sb题,然而读入稍有毒瘤。本来以为每个测试点100组数据会很卡时间,于是卡了很长时间的常。然而最后数据并没有卡,差评。
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long llu;
const int maxn=100000+10,maxm=30000+10;
const llu base=233;
llu ha[maxn];
struct node{
	llu data;
	int id;
	int belong;
}b[maxn];
struct Node{
	int to,nxt;
}edge[maxn];
int head[maxm],vis[maxn],dfn[maxn],low[maxn],Stack[maxn];
int n,tool,cnt,tot,top,tim,Time,cnt_scc;
bool flag;
int read(){
	int w=0,x=1;
	char ch=getchar();
	while(ch>'9'||ch<'0'){
		if(ch=='-') x=-1;
		ch=getchar();
	}
	while(ch<='9'&&ch>='0'){
		w=(w<<1)+(w<<3)+(ch^48);
		ch=getchar();
	}
	return w*x;
}
void add(int from,int to){
	edge[++cnt].to=to;
	edge[cnt].nxt=head[from];
	head[from]=cnt;
}
bool cmp(llu x,llu y){
	return x<y;
}
void Init(){
	n=read();
	top=tool=Time=cnt_scc=cnt=0;
	for(int i=1;i<=n;++i){
		char ch=getchar();
		while((ch>='A'&&ch<='Z')||(ch>='0'&&ch<='9')||ch==' '){
			tool++;
			while((ch>='A'&&ch<='Z')||(ch>='0'&&ch<='9')){
				b[tool].data=b[tool].data*base+ch;
				ch=getchar();
			}
			b[tool].belong=i;
			if(ch==' '){
				ch=getchar();
				continue;
			}
		}
	}
	for(int i=1;i<=tool;++i) ha[i]=b[i].data;
	sort(ha+1,ha+tool+1,cmp);
	tot=unique(ha+1,ha+tool+1)-ha-1;
	for(int i=1;i<=tool;++i) b[i].id=lower_bound(ha+1,ha+tot+1,b[i].data)-ha;
	int xx;
	for(int i=1;i<=tool;++i){
		if(b[i].belong!=b[i-1].belong){
			xx=b[i].id;
			continue;
		}
		if(xx==b[i].id){
			printf("Yes\n");
			flag=1;
			return;
		}
		add(b[i].id,xx);
	}
}
void Clear(){
	memset(Stack,0,sizeof(Stack));
	for(int i=1;i<=tot;++i) head[i]=0;
	for(int i=1;i<=tool;++i) b[i].data=0;
	for(int i=1;i<=tot;++i) dfn[i]=low[i]=0;
}
void tarjan(int u){
	if(dfn[u]) return;
	Stack[++top]=u;
	vis[u]=tim;
	dfn[u]=low[u]=++Time;
	for(int i=head[u];i;i=edge[i].nxt){
		int v=edge[i].to;
		if(!dfn[v]){
			tarjan(v);
			low[u]=min(low[u],low[v]);
		}else if(vis[v]==tim) low[u]=min(low[u],dfn[v]);
	}
	if(dfn[u]==low[u]){
		cnt_scc++;
		while(Stack[top+1]!=u){
			int t=Stack[top];
			vis[t]=0;
			top--;
		}
	}
}
void Solve1(){
	tim++;
	for(int i=1;i<=tot;++i) tarjan(i);
	if(cnt_scc!=tot) printf("Yes\n");
	else printf("No\n");
}
void Solve(){
	int T=read();
	while(T--){
		flag=0;
		Init();
		if(!flag) Solve1();
		Clear();
	}
}
int main(){
	freopen("dependency.in","r",stdin);
	freopen("dependency.out","w",stdout);
	Solve();
	return 0;
}
T2 A
这个20分也很简单。。暴力跑就行吧?
我其实是冲着40分去的,因为显然x的值域比询问小,所以排个序就行。。。然而貌似还是会T。
这个。。反正20分还是没啥问题。
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=500000+10;
struct F{
	int a,b;
}b[maxn];
int n,q;
struct Q{
	int data,id;
}c[maxn];
ll res[maxn];
int read(){
	int w=0,x=1;
	char ch=getchar();
	while(ch>'9'||ch<'0'){
		if(ch=='-') x=-1;
		ch=getchar();
	}
	while(ch<='9'&&ch>='0'){
		w=(w<<1)+(w<<3)+(ch^48);
		ch=getchar();
	}
	return w*x;
}
bool cmp(Q x,Q y){
	return x.data<y.data;
}
ll suan(int x){
	ll res=-0x3f3f3f3f3f3f3f3f;
	for(register int i=1;i<=n;++i) res=max(res,1ll*b[i].a*x*x+b[i].b*x);
	return res;
}
void Solve(){
	n=read();
	q=read();
	for(register int i=1;i<=n;++i){
		b[i].a=read();
		b[i].b=read();
	}
	for(register int i=1;i<=q;++i){
		c[i].data=read();
		c[i].id=i;
	}
	sort(c+1,c+q+1,cmp);
	int last=1000000;
	ll ans=0;
	for(register int i=1;i<=q;++i){
		if(c[i].data!=last){
			last=c[i].data;
			ans=suan(c[i].data);
		}
		res[c[i].id]=ans;
	}
	for(register int i=1;i<=q;++i) printf("%lld\n",res[i]);
}
int main(){
	freopen("A.in","r",stdin);
	freopen("A.out","w",stdout);
	Solve();
	return 0;
}
T3 B
emmm...这题的暴力。。。感觉反正硬爆搜肯定没分吧,然后部分分就是推柿子?那和正解有啥区别
感觉总之就是期望的线性性,整个dp吧
[暴力题解&&考试反思] 双十一欢乐赛(联赛膜你测试32)的更多相关文章
- 【题解】Comet OJ 国庆欢乐赛 简要题解
		[题解]Comet OJ 国庆欢乐赛 简要题解 A 直接做 B 直接做,结论: \[ ans=\max([Max\ge \mathrm{sum}] Max,s[n]/2) \] C 考虑这样一个做法: ... 
- 联赛膜你测试20 T1 Simple 题解 && NOIP2017 小凯的疑惑 题解(赛瓦维斯特定理)
		前言: 数学题,对于我这种菜B还是需要多磨啊 Simple 首先它问不是好数的数量,可以转化为用总数量减去是好数的数量. 求"好数"的数量: 由裴蜀定理得,如果某个数\(i\)不能 ... 
- Comet OJ 2019 夏季欢乐赛题解
		Comet OJ 2019 夏季欢乐赛题解 我是来骗访问量的 A 完全k叉树 \(n\)个点的完全k叉树的直径. 直接做 B 距离产生美 直接做 C 烤面包片 \(n!!!\mod p\) 显然\(n ... 
- [考试反思]0909csp-s模拟测试41:反典
		说在前面:我是反面典型!!!不要学我!!! 说在前面:向rank1某脸学习,不管是什么题都在考试反思后面稍微写一下题解. 这次是真的真的运气好... 这次知识点上还可以,但是答题策略出了问题... 幸 ... 
- [考试反思]0816NOIP模拟测试23
		210 210 210 170 还可以.暴力打满就rk4了? 但不管怎么说,总算是在改完题之后理直气壮的写考试反思了. T1是个dp,说水也不太水.(当然某脸只要A掉了一道题就要说那是水题) 我的思路 ... 
- [考试反思]0801NOIP模拟测试11
		8月开门红. 放假回来果然像是神志不清一样. 但还是要接受这个事实. 嗯,说好听点,并列rank#7. 说难听点,垃圾rank#18. 都不用粘人名就知道我是哪一个吧... 因为图片不能太长,所以就不 ... 
- [考试反思]0714/0716,NOIP模拟测试3/4
		这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ... 
- m74 考试反思
		这次不叫考试题解,叫做考试反思,为什么折磨说,因为这次犯的错误太多了! 事情还要从昨天晚上说起,昨晚放学,班主任来机房说我被子不合格,要停课反思 ###&&¥%#%¥@#%¥#@……% ... 
- [考试反思]0814NOIP模拟测试21
		前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ... 
随机推荐
- AntDesign VUE:上传组件自定义限制的两种方式(Boolean、Promise)
			AntD上传组件 AntDesign VUE文档 第一种方式 beforeUpload(file) { let isLt = true if (filesSize) { isLt = file.siz ... 
- 清除router路由后面的参数
			清除router参数: 1.this.$router.push({ query: {}}) 2.var path = this.$route.path; //获取路由路径 this.$route ... 
- golang指针接收者和值接收者方法调用笔记
			初学go时很多同学会把 值接收者 和 指针接收者 的方法相互调用搞混淆,好多同学都只记得指针类型可以调用值接收者方法和指针接收者方法,而值类型只能调用值接收者方法,其实不然,在某些情况下,值类型也是可 ... 
- awk工作流程
			awk 工作过程:先执行BEGIN模块,再跟文本交互,最后执行END模块.也就是说BEGIN/END模块,这俩是单独操作跟文本是同一级,但执行有优先级,BEGIN模块>文本>END模块 行 ... 
- js根据日期获取所在周
			一.获取时间所在周的周一.周五 function getFirstLastDay (time) { let date = new Date(time) let Time = date.getTime( ... 
- 十、Abp vNext 基础篇丨权限
			介绍 本章节来把接口的权限加一下 权限配置和使用 官方地址:https://docs.abp.io/en/abp/latest/Authorization 下面这种代码可能我们日常开发都写过,ASP. ... 
- seo执行步骤
			第一个金字塔策略这个很适用于大型网站,我想做过大型网站,特别是关键词比较多比较杂乱的站长来说,这个图太熟悉不过了,就算是没有见过,但实际操作中早就用到了这些手法.如果能把这个图领会透并实际应用,做一个 ... 
- Nginx系列(1)- Nginx简介
			公司产品出现瓶颈 公司项目刚上线的时候,并发量小,用户使用少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户 但是慢慢的,使用平台的用户越来越多,并发量慢慢增大了 ... 
- 从浏览器渲染层面解析css3动效优化原理
			引言 在h5开发中,我们经常会需要实现一些动效来让页面视觉效果更好,谈及动效便不可避免地会想到动效性能优化这个话题: 减少页面DOM操作,可以使用CSS实现的动效不多出一行js代码 使用绝对定位脱离让 ... 
- Selenium多浏览器并行测试
			如果需要同时在IE.firefox.chrome进行测试,可以使用grid. Selenium Grid是一个智能代理服务器,允许Selenium测试将命令路由到远程Web浏览器实例.其目的是提供一种 ... 
