专栏文章

别样的卡常大战

休闲·娱乐参与者 7已保存评论 7

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
7 条
当前快照
1 份
快照标识符
@miqv447u
此快照首次捕获于
2025/12/04 11:14
3 个月前
此快照最后确认于
2025/12/04 11:14
3 个月前
查看原文
今天上午,wzoi 给我打来电话。他说:“我要加题了,你敢不敢和我举行卡常大战?”我豪爽的答应了:“我当然敢!,今天下午一点在搜城探宝 举行,谁不来谁就是怂货”。
我原本以为我恐吓了 wzoi,wzoi 应该躲在家,不敢找我,可正当这时,我听见了音乐声,原来是我手机响了,一看,竟然是 wzoi 打来的电话,他还真有勇气,我接通了电话,听道电话那头骂道:“小废物,你怎么还不来,再不来你就要体验营排名垫底了了。”我听到他对我的毒骂之后,我回骂道:“我要把你搬题的事挂到孙吧上,帮你炒作一番,你说好不好啊。”
他吓得没再回应我,可是到了下午,wzoi 竟然又给我打电话了,他还真要和我举行卡常大战,于是我按照约定,到达了搜城探宝,可他已经等我很久了。
下午一点,我占今上风,他比不过我,到了第六回合,他就主动了TLE on date1 and date 3了!
下午四点,他开始占上风,我也不甘势弱,我们僵持了一百多个回合,他因为轻敌,被我AC on date1 了。
从那时开始,wzoi 就不轻敌了,他认真研究我的代码,于是他总结出了一套评测机状态。
五点半,我们举行第三局,他使用祖传方案,对我发动猛烈的 10xx ms,我们势均力敌,平分秋色,我们比了 3 分多钟,也没分出胜负。
后来,他不知不觉的睡着了,我趁着这个好机会,一记比原代码还长的火车头,一飞冲天,打的他不敢还手,对他的打击比考试忘记关网还大。
CPP
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define N 105
%:pragma GCC optimize(3)
%:pragma GCC optimize("Ofast")
%:pragma GCC optimize("inline")
%:pragma GCC optimize("-fgcse")
%:pragma GCC optimize("-fgcse-lm")
%:pragma GCC optimize("-fipa-sra")
%:pragma GCC optimize("-ftree-pre")
%:pragma GCC optimize("-ftree-vrp")
%:pragma GCC optimize("-fpeephole2")
%:pragma GCC optimize("-ffast-math")
%:pragma GCC optimize("-fsched-spec")
%:pragma GCC optimize("unroll-loops")
%:pragma GCC optimize("-falign-jumps")
%:pragma GCC optimize("-falign-loops")
%:pragma GCC optimize("-falign-labels")
%:pragma GCC optimize("-fdevirtualize")
%:pragma GCC optimize("-fcaller-saves")
%:pragma GCC optimize("-fcrossjumping")
%:pragma GCC optimize("-fthread-jumps")
%:pragma GCC optimize("-funroll-loops")
%:pragma GCC optimize("-fwhole-program")
%:pragma GCC optimize("-freorder-blocks")
%:pragma GCC optimize("-fschedule-insns")
%:pragma GCC optimize("inline-functions")
%:pragma GCC optimize("-ftree-tail-merge")
%:pragma GCC optimize("-fschedule-insns2")
%:pragma GCC optimize("-fstrict-aliasing")
%:pragma GCC optimize("-fstrict-overflow")
%:pragma GCC optimize("-falign-functions")
%:pragma GCC optimize("-fcse-skip-blocks")
%:pragma GCC optimize("-fcse-follow-jumps")
%:pragma GCC optimize("-fsched-interblock")
%:pragma GCC optimize("-fpartial-inlining")
%:pragma GCC optimize("no-stack-protector")
%:pragma GCC optimize("-freorder-functions")
%:pragma GCC optimize("-findirect-inlining")
%:pragma GCC optimize("-fhoist-adjacent-loads")
%:pragma GCC optimize("-frerun-cse-after-loop")
%:pragma GCC optimize("inline-small-functions")
%:pragma GCC optimize("-finline-small-functions")
%:pragma GCC optimize("-ftree-switch-conversion")
%:pragma GCC optimize("-foptimize-sibling-calls")
%:pragma GCC optimize("-fexpensive-optimizations")
%:pragma GCC optimize("-funsafe-loop-optimizations")
%:pragma GCC optimize("inline-functions-called-once")
%:pragma GCC optimize("-fdelete-null-pointer-checks")
int cnt,h[2100],f[2100],q,n,ans,w[210],k;
int vis2[210];
bool vis[50];
struct E{
	int t,nxt,w;	
}e[2100];
void add(int s,int t){
	e[++cnt].t=t;
	e[cnt].nxt=h[s];
	h[s]=cnt;
}
void dfs(int u,int tot,int key1,bool key2,bool isit){//,int step
	if(u==0) return ;
//	if(step>20) return ;
	ans=max(ans,tot);
	if(key1==0) {
		if(key2==1)
		for(int i=1;i<=n;i++){
			if(vis[i]==0){
				vis[i]=1;
				dfs(i,tot+w[i],key1,0,0);//,step+1
				vis[i]=0;
			}
		}
		return ;
	}
	for(int i=h[u];i;i=e[i].nxt){
		int v=e[i].t;
		if(vis[v]==1)continue;
		vis[v]=1;
		if(key1!=0)
		dfs(v,tot+w[v],key1-1,key2,0);//,step+1
		vis[v]=0;
	}
	if(isit==0&&key2==1) 
		for(int i=1;i<=n;i++){
			if(vis[i]==0){
				vis[i]=1;
				dfs(i,tot+w[i],key1,0,0);//,step+1
				vis[i]=0;
			}
		}
	dfs(f[u],tot,key1-(1-vis[f[u]]),key2,1);
}
namespace FastIO{
	char BUF[1<<21],*P1=BUF;
	const char *P2=BUF+sizeof(BUF);
	#define putchar(a) (P1==P2&&put_buf,*P1++=(a))
	#define put_buf (fwrite(BUF,1,P1-BUF,stdout)&&(P1=BUF))
	#define exit put_buf;exit
	char buf[1<<21],*p1=buf,*p2=buf;
	#define getchar() (p1==p2&&(p1=buf,p2=(p1+fread(buf,1,1<<21,stdin)))==p1?EOF:*p1++)
	template<typename T>inline T read(){T x=0,w=0;char ch=getchar();while(ch<'0'||ch>'9')w|=(ch=='-'),ch=getchar();while('0'<=ch&&ch<='9')x=x*10+(ch^'0'),ch=getchar();return w?-x:x;}
	template<typename T>inline void write(T x){if(!x)return;write<T>(x/10),putchar((x%10)^'0');}
	template<typename T>inline void print(T x){if(x>0)write<T>(x);else if(x<0)putchar('-'),write<T>(-x);else putchar('0');}
	template<typename T>inline void print(T x,char en){print<T>(x),putchar(en);}
    template<typename T>inline void print(string s){for(int i=0;i<s.size();i++)putchar(s[i]);}
}using namespace FastIO;
#define read read<int>
#define print print<int>
int main(){
	//ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	n=read();k=read();
	for(int i=1,u,v;i<n;i++){
		u=read();v=read();
		add(u,v);
		f[v]=u;
	}
	for(int i=1;i<=n;i++) w[i]=read();
	add(n+1,1);
	dfs(n+1,0,k,1,0);//,0
	print(ans);
	exit(0);
}
(不是正解)

评论

7 条评论,欢迎与作者交流。

正在加载评论...