河南理工大学新生挑战赛【部分题题解】

A: Dong Zhi【签到】

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    
    
	cout<<"Let’s eat dumplings";
	return 0;
}

B: The flower【简单 / 哈希表】

在这里插入图片描述

在这里插入图片描述https://ac.nowcoder.com/acm/contest/3665/B

#include<bits/stdc++.h>
using namespace std;
map<string,int>mp;
vector<string>ans;
int main(void)
{
    
    
	string s; cin>>s;
	int k; cin>>k;
	if(k<=s.size())
	for(int i=0;i<=s.size()-k;i++) mp[s.substr(i,k)]++;
	
	for(auto i=mp.begin();i!=mp.end();i++) if(i->second>2) ans.push_back(i->first);
	cout<<ans.size()<<endl;
	for(int i=0;i<ans.size();i++) cout<<ans[i]<<endl; 
	return 0;
}

D: LaunchPad【一般 / 差分】

在这里插入图片描述
https://ac.nowcoder.com/acm/contest/3665/D

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int f[N][N],n,m,k;
void insert(int x,int y,int xx,int yy,int c)
{
    
    
    f[x][y]+=c;
    f[x][yy+1]-=c;
    f[xx+1][y]-=c;
    f[xx+1][yy+1]+=c;
}
int main(void)
{
    
    
    cin>>n>>m>>k;
    while(k--)
    {
    
    
        int x,y; cin>>x>>y;
        insert(x,1,x,m,1);//行
        insert(1,y,n,y,1);//列
        insert(x,y,x,y,-1);//中间那一点多加了一次
    }
    int cnt=0;
    for(int i=1;i<=n;i++)
    {
    
    
        for(int j=1;j<=m;j++)
        {
    
    
            f[i][j]+=f[i-1][j]+f[i][j-1]-f[i-1][j-1];
            if(f[i][j]&1) cnt++;
        }
    }
    cout<<cnt<<endl;
    return 0;
}

E: Morse code【思维】

在这里插入图片描述
在这里插入图片描述
https://ac.nowcoder.com/acm/contest/3665/E

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    
    
    int t; cin>>t;
    while(t--)
    {
    
    
        string s; cin>>s;
        cout<<s.size()/2<<endl;
    }
    return 0;
}

F: Puzzle【简单】

在这里插入图片描述
在这里插入图片描述
https://ac.nowcoder.com/acm/contest/3665/F

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
    
    
	int t; cin>>t;
	while(t--)
	{
    
    
		string s; cin>>s;
		int cnt=0;
		for(int i=0;i<s.size();i++)
		{
    
    
			if(s[i]=='0') cnt++;
			else if(s[i]=='9') cnt++;
			else if(s[i]=='6') cnt++;
            else if(s[i]=='4') cnt++;
			else if(s[i]=='8') cnt+=2;
		}
		cout<<cnt<<endl;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_46527915/article/details/120569225