首页 > 其他分享 >SMU Winter 2024 div2 ptlks的周报Week 6(3.18-3.24)

SMU Winter 2024 div2 ptlks的周报Week 6(3.18-3.24)

时间:2024-03-24 13:56:03浏览次数:20  
标签:Week 3.18 Winter int sum long 1000086 dp define

不难想到,要求环的期望,只需求出所有可能的环的长度总和和不相邻点对的组数。而边数确定,则只需求环的总长。对于两个不相邻的点x,y,所形成的环的长度等于两点深度之差加一,\(\vert dp[x]-dp[y]\vert+1\),不妨令x为根节点,则只需求所有节点的深度之和,再减去相邻的点,最后对树进行换根dp,输出答案即可。

另一道树上问题

题意:给一棵n个节点和n-1条边的树,均匀随机地选取两不相邻的点,求出现的环的期望长度。

代码

#include <bits/stdc++.h>
#define int long long 
#define MOD 1000000007
using namespace std;

int f[1000086]={0},n,sum=0;
vector<int>g[1000086],vis(1000086,0),vis1(1000086,0);
vector<int>cnt(1000086,0);

void dfs(int x,int s){
	vis[x]=1;
	cnt[x]=1;
	int y=0;
	for(int i=0;i<g[x].size();i++){
		if(!vis[g[x][i]]){
			dfs(g[x][i],s+1);
			cnt[x]+=cnt[g[x][i]];
			y+=f[g[x][i]];
			vis[g[x][i]]=0;
		}
	}
	f[x]+=y;
	f[x]+=s;
}

void dfs1(int x){
	vis1[x]=1;
	for(int i=0;i<g[x].size();i++){
		if(!vis1[g[x][i]]){
			f[g[x][i]]=f[x]+n-cnt[g[x][i]]*2;
			sum+=f[g[x][i]]-g[g[x][i]].size()*2+n-1;
			dfs1(g[x][i]);
			vis1[g[x][i]]=0;
		}
	}
}

int32_t main() {
	cin >> n;
	for(int i=0;i<n-1;i++){
		int x;
		cin>>x;
		g[i+1].emplace_back(x);
		g[x].emplace_back(i+1);
	}
	dfs(n,0);
	sum+=f[n]-g[n].size()*2+n-1;
	dfs1(n);
	sum/=2;
	int t=(n-1)*(n-2)/2;
	int gg=gcd(t,sum);
	cout<<sum/gg<<'/'<<t/gg<<endl;
}


第一次遇到限制空间的题,故一直RE,最后是卡空间过的。实际上可以遍历两次来节约空间,若存在\(a_i=a_j\),因为数列是递推的,则必存在\(a_k=a_n\),则可以先遍历一遍算出\(a_n\),再遍历第二遍来判断是否存在\(a_k=a_n\),这样就不需要存储计算过的\(a_i\)来判重。

随机序列检测

题意:此题空间限制为4MB。整数序列满足\(a_i = (Aa_{i−1}^2 + Ba_{i−1} + C) mod P, i > 0\),给定$ n, a_0, A, B, C, P$,判定这个序列中是否存在重复的数字?

代码

#include <bits/stdc++.h>
#define ll long long
#define MOD 998244353
using namespace std;

map<int,int>hm;
ll n,A,B,C,f=0;
int P,a0,an;

int32_t main() {
	int T = 1;
	cin >> T;
	while (T--) {
		cin>>n>>a0>>A>>B>>C>>P;
		an=a0;
		f=0;
		for(int i=1;i<=n;i++){
			an=(((A*an)%P*an)%P+(B*an)%P+C)%P;
		}
		if(a0==an){
			f=1;
		}
		for(int i=1;i<=n-1;i++){
			a0=(((A*a0)%P*a0)%P+(B*a0)%P+C)%P;
			if(a0==an||f){
				f=1;
				break;
			}
		}
		if(f)cout<<"Repetitive\n";
		else cout<<"Different\n";
	}
}



标签:Week,3.18,Winter,int,sum,long,1000086,dp,define
From: https://www.cnblogs.com/ptlks/p/18092345

相关文章

  • #17 2023.3.18
    645.loj4038「SNOI2024」树V图646.loj4039「SNOI2024」矩阵647.loj4040「SNOI2024」拉丁方648.loj4041「SNOI2024」平方数649.loj4042「SNOI2024」公交线路650.loj3903「PA2022」Palindrom651.loj3904「PA2022」WielkiZderzaczTermionów652.loj......
  • 【Coursera GenAI with LLM】 Week 3 LLM-powered applications Class Notes
    ModeloptimizationstoimproveapplicationperformanceDistillation:usesalargermodel,theteachermodel,totrainasmallermodel,thestudentmodel,wefreezeteacher'sweightsandgeneratecompletions,alsogeneratestudentmodel'scompl......
  • 2024.3.18-隐私计算-隐语-数据可信流通,从运维信任到技术信任
    学习感受本节课从背景介绍、可信/非可信与数据流通之间的关系、提出关于技术实现数据流通安全的解决方案笔记1:可信与非可信之间的关系可信:身份可确认、利益可依赖、能力有预期、行为有后果关于可信的定义/规则,其实在外循环当中其实很难去遵守,因为身份追踪是比......
  • 复习java的第一天3.18的文章
    大家好,我准备在这里记录我每天的学习(复习)java的成果,以及计划和规划,为的就是希望能找几个月后能找一份工作,并且我希望自己能坚持下去,养成一个良好的习惯,让自己不再那么迷茫,与其内耗不如做点有意义有方向的事情.之前我一直想不明白自己到底想要干什么,因为网上看着大家都说......
  • 英语随笔,发散了 3.18
    todayihavesomethingsthatwanttosharewithu.iwatchedavideobefore,andtodayiwatcheditagain.ifoundsomethingmeaningfulfromthepeople'stalking.shesaid:"thereisnostagethatucanjustgetthrough."wealwayshopetoget......
  • 3.18
    1.建立空项目2.在project下创建libs导入mysql-connector-java.jar(导入5.+的) 3.在manifests添加<uses-permissionandroid:name="android.permission.INTERNET"/> 4.配模拟器5.开远程访问权限6. 7.编写主界面 5.运行即可出现helloworld......
  • 3.18
    Buttonquery=(Button)findViewById(R.id.query_data);2query.setOnClickListener(newOnClickListener(){34@Override5publicvoidonClick(Viewv){6SQLiteDatabasedb=dbHelper.getWritableDatabase();......
  • 3.18 记账本的bug修复
    我的记账本不论支出还是收入点进去都是支出的界面,因为能力不足经过排查好久才发现问题先来看源代码import{CommonConstants}from'../../common/constants/CommonConstants'importItemModelfrom'../../model/ItemModel'importRecordItemfrom'../../viewmodel/Recor......
  • PTA 打卡 3.18
    7-1新胖子公式#include<bits/stdc++.h>usingnamespacestd;intmain(){floath,w,t;cin>>w;cin>>h;t=w/(h*h);printf("%.1f\n",t);if(t>25.0)cout<<"PANG";elsecout&......
  • q2-生存技能-2024.3.18
    之前相亲的时候那个姑娘(互删微信了)说平时都是在网上买菜直接送到家的,她家是镇上的,我家是村里的,就是说她那边可以打到车,我这边打不到车,不过家里附近有高铁,后来跟着家里送鸡蛋的时候发现拼多多买菜可以送到商店,我就和司机大哥简单聊了两句.我说这个挺方便的还能送到这里,他说是啊,只要......