首页 > 编程语言 >浪潮1024工程师文化节编程大赛

浪潮1024工程师文化节编程大赛

时间:2022-10-23 20:02:21浏览次数:52  
标签:1024 文化节 编程 cin long int tie dp define

1.https://nanti.jisuanke.com/t/T1649

简单模拟,对其从横方向和竖方向进行暴力搜索即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
const int N=1010;
int n;
int a[N][N];
int ans[N][N];
int cnt=-1;
signed main()
{
    IOS;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(a[i][j]==0)
            {
                for(int h=1;h<=n;h++)
                {
                    ans[i][j]+=a[i][h];
                }
                for(int s=1;s<=n;s++)
                {
                    ans[i][j]+=a[s][j];
                }
            }
        }
        
    }
      for(int i=1;i<=n;i++)
      {
          for(int j=1;j<=n;j++)
          {
              if(cnt<ans[i][j])
              cnt=ans[i][j];
          }
      }
    cout<<cnt<<endl;
    return 0;
}

 

2、https://nanti.jisuanke.com/t/A1701

普通LIS为n^2级别,超时,这里学习的人家的思想,用一个m[]来表示以某价格结尾的最大销售量,dp[]则表示以第i个物品结尾(注意是物品的数量)最大销售量,;然后后面分别将没有加进来的依次加进来(满足次序是递增的)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 //#define int long long 
 4 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
 5 const int N=1e5+10;
 6 int t;
 7 int n,d;
 8 int a[N];
 9 int LIS()
10 {
11     /*int dp[N];
12     dp[1]=1;
13     for(int i=2;i<=n;i++)
14     {
15         int maxx=0;
16         for(int j=1;j<i;j++)
17         {
18             if(dp[j]>maxx&&j<i&&abs(p[i]-p[j])<=d)
19             maxx=dp[j];
20         }
21         dp[i]=maxx+1;
22         if(dp[i]>ans)
23         {
24             ans=dp[i];
25         }
26     }
27     return ans;*/
28     int ans=-1;
29     int dp[N];
30     int m[N];
31     memset(dp,0,sizeof(dp));
32     memset(m,0,sizeof(m));
33     for(int i=1;i<=n;i++)
34     {
35         dp[i]=1;
36         for(int j=max(1,a[i]-d);j<=min(a[i]+d,100000);j++)
37         {
38             dp[i]=max(dp[i],m[j]+1);
39         }
40         m[a[i]]=max(m[a[i]],dp[i]);
41         ans=max(ans,dp[i]);
42     }
43     return ans;
44 }
45 signed main()
46 {
47     IOS;
48     cin>>t;
49     while(t--)
50     {
51         cin>>n>>d;
52         for(int i=1;i<=n;i++)
53         {
54             cin>>a[i];
55         }
56         cout<<LIS()<<endl;
57     }
58     return 0;
59 }

3.https://nanti.jisuanke.com/t/T1395

思路很简单,比对输入字串和目标字串,如果不同则反转当前的字符,并且步数加一;

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define int long long 
 4 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
 5 string a,b;
 6 int cnt;
 7 char solved(int c)
 8 {
 9     if(c=='*')
10     {
11         c='o';
12     }
13     else
14     {
15         c='*';
16     }
17     return c;
18 }
19 signed  main()
20 {
21     IOS;
22     getline(cin,a);
23     getline(cin,b);
24     for(int i=0;i<a.length()-1;i++)
25     {
26         if(a[i]!=b[i])
27         {
28             a[i]=solved(a[i]);
29             a[i+1]=solved(a[i+1]);
30             cnt++;
31         }
32     }
33     if(a==b)
34     {
35         cout<<cnt<<endl;
36     }
37     else
38     {
39         cout<<"No Answer."<<endl;
40     }
41     return 0;
42 }

4.https://nanti.jisuanke.com/t/T1412

dfs前驱记录题

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define int long long 
 4 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
 5 const int N=1e5+10;
 6 int t;
 7 int n,m;
 8 vector<int>g[N];
 9 bool vis[N];
10 int pre[N];
11 void dfs(int x)
12 {
13     for(int i=0;i<g[x].size();i++)
14     {
15         if(!pre[g[x][i]])
16         {
17             pre[g[x][i]]=x;
18             dfs(g[x][i]);
19         }
20     }
21 }
22 signed main()
23 {
24     IOS;
25     cin>>t;
26     while(t--)
27     {
28         memset(g,0,sizeof(g));
29         memset(pre,0,sizeof(pre));
30         cin>>n>>m;
31         int s,t;
32         for(int i=1;i<=n-1;i++)
33         {
34             cin>>s>>t;
35             g[s].push_back(t);
36             g[t].push_back(s);
37         }
38         pre[m]=-1;
39         dfs(m);
40         for(int i=1;i<=n;i++)
41         {
42             cout<<pre[i]<<" ";
43         }
44     }
45     return 0;
46 }

 

标签:1024,文化节,编程,cin,long,int,tie,dp,define
From: https://www.cnblogs.com/LQS-blog/p/16819306.html

相关文章

  • 熟悉编程语言
    参考https://www.tiobe.com/tiobe-index/,看看现在最受欢迎的编程语言top50是哪些编程语言?Java、C++、C、Python、JavaScript、C#、Swift、GO(Golang)、PHP、Ruby等这50......
  • 实验2 C语言控制语句应用编程
    1#include<stdio.h>2#include<stdlib.h>3#include<time.h>45intmain()6{7srand(time(0));89intdate=rand()......
  • 熟悉编程语言
    现在最受欢迎的编程语言top50分类命令式:C,C++,Java声明式:SQL,python我想至少熟悉掌握C语言,之后再对Python、c++进行学习。......
  • 初始面向对象编程
    OOP面向对象编程类的结构classStudent{}类与对象classProgram{//主方法(程序入口)staticvoidMain(string[]args){//张三是Student实例......
  • 熟悉编程语言
    1.最受欢迎的编程语言top502.编程泛型命令式编程:是一种描述计算机所需作出的行为的编程典范。几乎所有计算机的硬件工作都是命令式的;几乎所有计算机的硬件都是设计......
  • 《敏捷软件开发原则、模式与实践》(美)Robert C.Martin著 读书笔记(第一部分 敏捷开发 第
    关键词:《敏捷软件开发原则、模式与实践》,(美)RobertC.Martin,读书笔记,极限编程第二章极限编程概述极限编程(XP)实践1)客户作为团队成员  最好的情况是——客户和开......
  • 基于C#的Socket网络编程
    基于C#的Socket网络编程服务端usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSyste......
  • Golang:4.1、Golang 并发编程-协程
    4.1、Golang并发编程-协程共语言中的并发是函数相互独立运行的能力。goroutines是并发运行的函数创建协程gotask()示例1packagemainimport("fmt""t......
  • 实验2 C语言控制语句应用编程
     任务一:#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5intmain(){intnumber;inti;srand(time(0));for(i=0;i<N;++i){nu......
  • C语言学习--多文件编程(未完待续)
    多文件编程:将多个包含不同功能函数的.c文件,编译在一起,生成一个exe文件防止多文件重复包含,即多文件守卫。(在main函数的.c文件里面,只导入一次,防止多次导入)(1)#p......