2020/09/16 rating赛+天梯赛 3

天梯赛
7-1 判断素数
注意点:
1.1既不是素数也不是和数,所以要特殊判断1
2.循环暂停条件 i*i<=m

#include<bits/stdc++.h>
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;

//const int N = 1000000000 + 5;
int main()
{
    speed_up;
int n;
cin>>n;
long long i;
while(n--)
{
    long long m;
    cin>>m;
    for(i=2;i*i<=m;i++)
    {
        if(m%i==0)
        {
            break;
        }
    }
    if(i*i>m&&m!=1){cout<<"Yes"<<endl;}
    else{cout<<"No"<<endl;}
}

}

7-10 抢红包
注意:
设置一个double money ;
最后再money/100;

#include<bits/stdc++.h>
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;

//const int N = 1000000000 + 5;
struct people
{
   int num;
   int sum=0;
   double money=0;
};

/*int comp(people& p1,people& p2)
{
    if(p1.money>p2.money)
    {
        return 1;
    }
    if(p1.money<p2.money)
    {
        return 0;
    }
    if(p1.money==p2.money)
    {
        if(p1.sum<p2.sum)
        {
            return 1;
        }
        if(p1.sum>p2.sum)
        {
            return 0;
        }
        if(p1.sum==p2.sum)
        {
            if(p1.num<p2.num)
            {
                return 1;
            }
            else
            {
                return 0;
            }
        }
    }
}*/
bool comp(people p1,people p2)
{
    if((p1.money==p2.money)&&(p1.sum==p2.sum))
        return p1.num<p2.num;
    else if(p1.money==p2.money)
        return p1.num>p2.num;
    else return p1.money>p2.money;
}


int main()
{
   int n,i,j;
   cin>>n;
   people p[n];
   for(i=0;i<n;i++)
   {
       int k;
       cin>>k;
       p[i].num=i;
       for(j=0;j<k;j++)
       {
           int n1;
           double p1;
           cin>>n1>>p1;
           p[n1-1].num=n1-1;
           p[i].money=p[i].money-p1;
           p[n1-1].sum++;
           p[n1-1].money=p[n1-1].money+p1;
       }
   }
   sort(p,p+n,comp);
   for(i=0;i<n;i++)
   {
       cout<<p[i].num+1<<" "<<setiosflags(ios::fixed)<<setprecision(2)<<p[i].money/100<<endl;
   }
}

7-9 小字辈
(看的大佬的思路)
1.把输入的数据利用vector储存,在输入期间标记老祖宗的下标
2.创建一个数组,这个数组标记每个人的辈分利用这个辈分找到我们所要的最小辈分这里我们先把老祖宗的辈分设为1
3.我们先把老祖宗的下标入队,看老祖宗这哥数组有几个元素,利用向下搜索

#include<bits/stdc++.h>
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
vector<int>v[200005];
int vv[100005];
queue<int>q;
int main()
{
    int n,x,lzz;//lzz 记录老祖宗
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>x;
        if(x==-1)lzz=i;
        else
            v[x].push_back(i);
    }
    if(n==1)
    {
        cout<<"1"<<endl;
        cout<<"1";
        return 0;
    }
    q.push(lzz);
    int bfen=1;        //统计辈分
    vv[lzz]=1;
    while(!q.empty())
    {
        int temp = q.front();
        q.pop();
        for(int i=0;i<v[temp].size();i++)
        {
            vv[v[temp][i]] = vv[temp]+1;//更新每个人的辈分
            bfen = max(bfen,vv[v[temp][i]]);//更新(获得)最小辈分的值
            q.push(v[temp][i]);//把下一次要遍历的入队
        }
    }
    cout<<bfen<<endl;
    int flag = 0;
    for(int i=1;i<=n;i++)
    {
        if(vv[i]==bfen)
        {
            if(!flag)
            {
                cout<<i;
                flag = 1;
            }
            else
                cout<<" "<<i;
        }
    }
}

7-12 深入虎穴
(看的大佬的代码)
1.有给定入口,需要新增标记数组(跟小字辈几乎做法一样)
2.出口一定在输入k为0的门上,这样我们可以在用一个动态数组来保存这些后面没有门的点,然后从后往前搜

#include <bits/stdc++.h>
#define pb push_back
#define mem(a,b) memset(a,b,sizeof a)
using namespace std;
typedef long long ll;
const int INF=0x3f3f3f3f;
int n,vis[100010],root,num[100010],maxx,ff;
vector<int> vi[100010];
void dfs(int nn,int fa)
{
	if(vi[fa].size()==0)
	{
		if(num[fa]>maxx)
		{
			maxx=num[fa];
			ff=fa;
		}
		return ;
	}
	for(int i=0;i<vi[fa].size();i++)
	{
		num[vi[fa][i]]=num[fa]+1;
		dfs(nn+1,vi[fa][i]);
	}
	return ;
}
int main()
{
//	freopen("D:\\LYJ.txt","r",stdin);
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int x,y;
		cin>>x;
		while(x--)
		{
			cin>>y;
			vi[i].pb(y);
			vis[y]=1;
		}
	}
	for(int i=1;i<=n;i++)
	{
		if(vis[i]==0)
		{
			root=i;
			num[root]=1;
			break;
		}
	}
	dfs(2,root);
//	for(int i=1;i<=n;i++) cout<<num[i]<<" ";
	cout<<ff;
	return 0;
} 

rating 赛
B - Power Sequence
排序之后再枚举
(看的大佬的代码)

#include<bits/stdc++.h>
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;

typedef pair<int, int> PII;
#define x first
#define y second
const int N = 500007, M = 5000007;
const long long INF = 1e14;

int n, m;
long long a[N];

int main()
{
    cin>>n;
    for(int i=1;i<=n;++i)
    {
        cin>>a[i];
    }
    long long ans=INF;
    int t=pow(INF,1.0/n);
    sort(a+1,a+1+n);
    for(int c=1;c<=t;++c)
    {
        long long sum=0, tmp=1;
        for(int i=1;i<=n;++i)
        {
            sum +=abs(a[i]-tmp);
            tmp *=c;
        }
        ans=min(ans,sum);
    }
    cout<<ans<<endl;
    return 0;
}

F - Basketball Exercise
(看的网上大佬的思路)
前i个学生的时候身高和最大,那么前i-1个学生的身高和要是最大
如果上一次选择的是第一排的学生,那么这一次只能选择第二排的学生,或者不选
求解时加上第一排第i个学生的身高,如果这次要选择不选,那么要求面对前i-1人时第一排的答案最优,否则面对第i个人的时候不是最优解,那么在选择这两种方式的时候选择大的就是这一次的最优解。两排都同时进行一次DP,最后取两者中大的即可。

#include<bits/stdc++.h>
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const int N=1e5+5;

long long h1[N],h2[N];
long long f[N],g[N];
 
int main()
{
	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	int i,n;
	cin>>n;
	for(i=1;i<=n;i++) cin>>h1[i];
	for(i=1;i<=n;i++) cin>>h2[i];
	
	f[0]=g[0]=0;
	for(i=1;i<=n;i++)
    {
		f[i]=max(f[i-1],g[i-1]+h1[i]);
		g[i]=max(g[i-1],f[i-1]+h2[i]);
	}
	cout<<max(f[n],g[n])<<endl;
	return 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值