码迷,mamicode.com
首页 > 其他好文 > 详细

noip2018自测报告

时间:2020-06-20 19:11:30      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:mem   mes   class   define   def   c++   sub   inf   main   

昨天和今天测了一下前年noip tg的题

100+80+20+60+45+0=305pts

应该是大众分了。。刚好压前年我省1=线。。

我还是太弱了/kk

提交的代码:

D1T1:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5;
int n,a[N],b[N],f[N];
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	for(int i=1;i<=n;i++)
		b[i]=a[i]-a[i-1];
	for(int i=1;i<=n;i++)
	{
		f[i]=f[i-1];
		if(b[i]>0)f[i]+=b[i];
	}
	printf("%d",f[n]);
	return 0;
}

D1T2:

#include<bits/stdc++.h>
#define ll long long 
using namespace std;
const int N=105;
const int M=3e6+10;
int T,n,a[N],dp[M],ans,mx,sum;
void clear()
{
	memset(dp,0,sizeof(dp));
	dp[0]=1;ans=n;mx=0;
}
int main()
{
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);clear();
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
			sum+=a[i];
		}
		sort(a+1,a+n+1);
        for(int i=1;i<=n;i++)
        {
            if(dp[a[i]]){ans--;continue;}
            for(int j=a[i];j<=sum;j++)
                dp[j]|=dp[j-a[i]];
        }
		printf("%d\n",ans);
	}
	return 0;
}

D1T3:

#include<bits/stdc++.h>
#define ll long long 
using namespace std;
const int N=5e5+10;
int n,m,tot=0,vis[N],ans,id;
int to[N],val[N],pre[N],now[N];
void add(int x,int y,int z)
{
	pre[++tot]=now[x];
	to[tot]=y,val[tot]=z;
	now[x]=tot;
}
void dfs(int x,int fk)
{
	vis[x]=true;
	if(fk>=ans){id=x;ans=fk;}
	for(int i=now[x];i;i=pre[i])
	{
		int y=to[i];
		if(vis[y])continue;
		dfs(y,fk+val[i]);
	}
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1,u,v,l;i<n;i++)
	{
		scanf("%d%d%d",&u,&v,&l);
		add(u,v,l);add(v,u,l);		
	}
	dfs(1,0);
	memset(vis,0,sizeof(vis));ans=0;
	dfs(id,0);
	printf("%d",ans);
	return 0;
}

 看到T1后我们可以画个图:

技术图片

我们把深度看成高度,分成了max{a[i]}层

很显然答案就是每一层被分开的区间数的总和

 Subcode:

for(int h=1;h<=MaxA;h++)
	for(int i=1;i<=n;i++)
		if(a[i]>=h&&a[i]-1<h)ans++;

时间复杂度为O(n*max{a[i]});

 

noip2018自测报告

标签:mem   mes   class   define   def   c++   sub   inf   main   

原文地址:https://www.cnblogs.com/Xxhdjr/p/13169455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!