先说一下彩蛋是怎么来的吧:
首先,组织人去群主那里骗来了福利,
然后,我把彩蛋藏在了题目了,
最后,就有了你们见到的彩蛋。
没找到彩蛋的小伙伴儿们不要着急,写道彩蛋的地方我会揭秘。
下面开始正文:
7-1 国庆节到了不要慌~先发个朋友圈!
出题人:王梦琪
小柳写的PHP代码:
如果信仰有颜色 那一定是中国红
7-2 解二元二次整数方程
出题人:张洪旗(由小琪从HAINNU程序设计小组题库中选择)
小柳的C语言代码:
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
printf("%d",45-x-x*x);
return 0;
}
7-3 输出这个数
出题人:王梦琪 & 柳汀洲
小琪的Python代码:
a=int(input())
b='123456789'
print("q"*int(a/1000),end='')
print("b"*int(a%1000/100),end='')
print("s"*int(a%100/10),end='')
print(b[0:(a%10)])
小柳的C++代码:
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int q=n/1000;
int b=n/100%10;
int s=n/10%10;
int g=n%10;
for(int i=0;i<q;i++)cout<<'q';
for(int i=0;i<b;i++)cout<<'b';
for(int i=0;i<s;i++)cout<<'s';
for(int i=1;i<=g;i++)cout<<i;
return 0;
}
7-4 小间谍
出题人:张洪旗(由小琪从HAINNU程序设计小组题库中选择)
出题人的C++代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
for(register int i=0;i<s.size();i++){
int t=(s[i]-'0'+2)%10;
cout<<t;
}
}
7-5 Peer Review
出题人:柳汀洲
正解:c++可以用二维set来做,c可以用邻接表 + 排序
因为我在PAT参与重构和开发了互评这个项目,所以我出了这道题。我没在做广告…
因为出题人语文不好,感觉怎么都表述不清楚,互评规则比较复杂,所以没导致很多人都没有写这道题。。。
1给2,3评分
2给3,5评分
3给1,5评分
5给1,2评分
那么给1评分的是3,5
给2评分的是1,5
…
如果看懂了的话。。。题目数据比较水,构造复杂数据太浪费时间了,我去写论文了。。。(溜,所以暴力也有可能通过
我的C++代码:
#include <bits/stdc++.h>
using namespace std;
int n,k;
set<int>s[1000010];
int main()
{
cin>>n>>k;
while(n--)
{
int m;
cin>>m;
for(int i=0;i<k;i++)
{
int x;
cin>>x;
s[x].insert(m);
}
}
int q;
cin>>q;
while(q--)
{
int x;
cin>>x;
for(auto i=s[x].begin();i!=s[x].end();i++)
{
if(i!=s[x].begin())cout<<" ";
cout<<*i;
}
cout<<endl;
}
return 0;
}
所以,顺便说一句,如果想用C/C++打程序设计比赛的话,学好STL还是很重要的。
如果第五题提交的代码能够编译通过(包括0分),大家应该就能猜到彩蛋在哪道题了。对,就是第五题。具体在哪儿先不急,先来看最后两道题的题解。
7-6 A ÷ B
出题人:王梦琪 & 柳汀洲
小柳:“一开始小琪和我说要出这道题的时候,我还以为要考字符串,所以我的标答就用字符串写的,按位除,取余。直到今天早上突然意识到。。。"
小柳的Python代码:
a, b = map(int, input().split())
print(a // b, end = ' ')
print(a % b)
意识到后边省略号的内容是:Python能不能存下1000位的整数呢。。。我做测试用例最大1000位,题目写的10000😂。。。Python试了一下,还真AC了。。。
不会Python是硬伤啊。。。多掌握几门编程语言还是好的。。。
直到小琪用python写字符串处理被这道题卡住了一段时间。。。我又意识到了。。。原来小琪真的是想考字符串处理。。。
那就把我处理字符串的代码贴出来吧。。。
#include <bits/stdc++.h>
using namespace std;
int main()
{
string a;int b,y=0,f=0;
cin>>a>>b;
for(int i=0;i<a.length();i++)
{
int d=y*10+a[i]-'0';
int s=d/b;
if(f!=0||s!=0)
{
cout<<s;
f=1;
}
y=d%b;
}
if(f==0)cout<<0;
cout<<" "<<y;
return 0;
}
这道题还有一个梗,是前几年出现的,1145141919810,大家可以自行百度。
7-7 有多少条路?
出题人:柳汀洲
考点:图的存储 + 记忆化搜索
这道题的考点是蓝桥杯出的 最多的一个考点,如果想参加蓝桥杯,一定要把这道题弄懂。
首先,这道题可以通过暴力(爆搜,dfs)骗到绝大部分的分,C语言代码如下:
#include <bits/stdc++.h>
using namespace std;
int n,m,e[510][510],a,b,r;
void dfs(int x)
{
if(x==b)
{
r++;
return;
}
for(int i=1;i<=n;i++)
{
if(e[x][i]==1)
{
dfs(i);
}
}
}
int main()
{
scanf("%d%d",&n,&m);
while(m--)
{
int x,y;
scanf("%d%d",&x,&y);
e[x][y]=1;
}
scanf("%d%d",&a,&b);
dfs(a);
printf("%d",r);
return 0;
}
或
#include <stdio.h>
int n,m,e[501][501],a,b;
int dfs(int x)
{
int res=0;
if(x==b)
{
return 1;
}
for(int i=1;i<=n;i++)
{
if(e[x][i]==1)
{
res+=dfs(i);
}
}
return res;
}
int main()
{
scanf("%d%d",&n,&m);
while(m--)
{
int x,y;
scanf("%d%d",&x,&y);
e[x][y]=1;
}
scanf("%d%d",&a,&b);
printf("%d",dfs(a));
return 0;
}
但是这样只有22分(只扣了3分),因为图最多有500个点,暴力的话,时间复杂度的数量级就是
2
500
2^{500}
2500,远超过1s内能运行次数的数量级
1
0
7
10^7
107,所以,这道题还需要在dfs的基础上记忆一下(记忆化搜索)。
小柳的C语言代码如下:
#include <stdio.h>
int n,m,e[510][510],a,b,f[510];
int dfs(int x)
{
int res=0;
if(x==b)
{
return 1;
}
for(int i=1;i<=n;i++)
{
if(e[x][i]==1)
{
if(f[i]==0)
{
f[i]=dfs(i);
}
res+=f[i];
}
}
return res;
}
int main()
{
scanf("%d%d",&n,&m);
while(m--)
{
int x,y;
scanf("%d%d",&x,&y);
e[x][y]=1;
}
scanf("%d%d",&a,&b);
printf("%d",dfs(a));
return 0;
}
小柳的C++代码如下:
#include <bits/stdc++.h>
using namespace std;
int n,m,a,b,f[510];
vector<int>v[510];
int dfs(int x)
{
int res=0;
if(x==b)
{
return 1;
}
for(auto i=v[x].begin();i!=v[x].end();i++)
{
if(f[*i]==0)
{
f[*i]=dfs(*i);
}
res+=f[*i];
}
return res;
}
int main()
{
scanf("%d%d",&n,&m);
while(m--)
{
int x,y;
scanf("%d%d",&x,&y);
v[x].push_back(y);
}
scanf("%d%d",&a,&b);
printf("%d",dfs(a));
return 0;
}
终于可以说彩蛋在哪里了
第五题
第三段话
电脑端的话,把鼠标移到第三段话上
手机端的话,点击一下第三段话
最后说一句,如果正式的比赛/考试,不要抄袭不要抄袭不要抄袭,包括问别人和在网上查(当然这次比赛就是玩一玩,没什么关系,但是也建议不要抄袭)。
①2022CCPC网络赛某科大因某同学使用word翻译 和 使用副机位违规切屏写代码+word翻译被组委会禁赛两年;(今天貌似有反转了,撤销了之前全校禁赛两年的决定,之后再做讨论。当前,取消本次比赛成绩,违规的那个队伍禁赛,肯定是逃不掉了)
②2022某比赛某985学校因某同学使用电脑上的老代码,被取消全校所有人的成绩;
③2022某考试某985学生因使用某违规工具通过网络互相传输代码,监考当场发现 + 赛后再一次被查重查到,被加入平台黑名单并禁考两年,并通报学校和几百个联盟企业。
(排行榜及答题数据分析稍后发在群文件里)
比赛题目集已经恢复了查看题目权限,大家可以去看彩蛋了。
大家也可以点击下面的“我要补题”,加入补题题目集,进行补题。
↓👇