第一题 帅学长的爱心

第二题 秋姐妹鸣泣之时 秋日天空下

第三题 王韬韬学长之喝可乐

第四题 Thanos sort 灭霸の无限手套

第五题 云云姐的奇妙键盘

第六题 云云姐想要染色

第七题 云云姐梦游仙境之决战史莱姆

第八题 王韬韬学长之买绳子

第九题  Zxh学长的奇妙游戏

第十题 众神所眷恋的幻想乡

第十一题 顾十二的神秘数字

第一题 帅学长的爱心 (返回顶部)

题意:输出0或者1 ,0时输出0 ,1时输出指定的爱心

思路:给出了公式,按照公式输出就行

 #include<stdio.h>
int main()
{
int n;
while(~scanf("%d",&n)){
if(n==){
for(double i=1.5;i>=-1.5;i-=0.1){
for(double j=-1.5;j<=1.5;j+=0.05){
double k=j*j+i*i-1.0;
if(k*k*k<=j*j*i*i*i){
printf("*");
}else{
printf(" ");
}
}
printf("\n");
}
}
else{
printf("0\n");
}
}
return ;
}

第二题 秋姐妹鸣泣之时 秋日天空下 (返回顶部)

题意:输入n,给n行01字符串,每个0和1都可以变成0或者1,如果能全部变成0,输出qiurangzi,不能就输出qiujingye

思路:总有一种情况会全变成0,所以直接输出qiurangzi即可

 #include<stdio.h>
#include<string.h>
int main()
{
int n;
char s[];
while(~scanf("%d",&n)){
while(n--){
scanf("%s",s);
printf("qiurangzi\n");
}
}
return ;
}

第三题 王韬韬学长之喝可乐(返回顶部)

题意:输入一个数字n,代表可以拿到n个空瓶子,4个空瓶子可以换一瓶可乐,然后三个空瓶子可以问老板借一个,换完可乐后还完。

思路:因为三个空瓶子可以换完,所以直接除3即可

 #include<stdio.h>
#include<string.h>
int main()
{
long long n;
while(~scanf("%lld",&n)){
printf("%lld\n",n/);
}
return ;
}

第四题 Thanos sort 灭霸の无限手套(返回顶部)

题意:数组三等分,然后获得最长非降序数组的大小是多少

思路:暴力模拟

 #include<stdio.h>
int a[];
int main()
{
int t,n;
while(~scanf("%d",&t)){
while(t--){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
}
int minn=;
for(int i=;i<=n;i*=){
for(int j=;j<=n;j+=i){
int f=;
for(int k=j+;k<j+i;k++){
if(a[k-]>a[k]){
f=;
break;
}
}
if(!f){
minn=i;break;
}
}
}
printf("%d\n",minn);
}
}
return ;
}

第五题 云云姐的奇妙键盘 (返回顶部)

题意:键盘输入0,会输出两个1,现在给一串数字字符串,问有多少种输入情况

思路:斐波那契(参考跳阶梯)

 #include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<functional>
#define mem(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
#define ll long long
#define mod 1000000007
using namespace std;
const int maxn=1e5+;
int dp[maxn];
char s[maxn];
int main(){
while(~scanf("%s",s+)){
int l=strlen(s+);
dp[]=,dp[]=;
for(int i=;i<=l;i++){
if(s[i]=='' && s[i-]==''){
dp[i]=(dp[i-]+dp[i-])%mod;
}
else{
dp[i]=dp[i-];
}
}
printf("%d\n",dp[l]);
}
return ;
}
 #include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=;
ll mod=1e9+;
ll p[maxn];
int main()
{
p[]=;
p[]=;
for(int i=; i<maxn; i++)
{
p[i]=(p[i-]+p[i-])%mod;
}
char q[maxn];
while(~scanf("%s",q))
{
int len=strlen(q);
ll sum=;
int d=;
for(int i=; i<len; i++)
{
if(q[i]=='')
{
d++;
}
else
{
sum=sum*p[d]%mod;
d=;
}
}
if(d)
{
sum=sum*p[d]%mod;
}
printf("%lld\n",sum);
}
return ;
}

第六题 云云姐想要染色(返回顶部)

题意:给了1,2,3种颜色的位置,给1,2,3颜色的每个位置的价钱,求最小总价即可

思路:暴力模拟

 #include<stdio.h>
int min(int a,int b){
return a<b?a:b;
}
int a[][];
int q,p,n;
int jia[];
int main()
{
while(~scanf("%d",&n)){
for(int i=;i<;i++){
for(int j=;j<n;j++){
scanf("%d",&a[j][i]);
}
}
for(int i=;i<n;i++){
scanf("%d",&jia[i]);
jia[i]--;
}
int sum1=,sum2=,sum3=,sum4=,sum5=,sum6=;
for(int i=;i<n;i++){
if(jia[i]==){
sum1+=a[i][];
sum2+=a[i][];
sum3+=a[i][];
sum4+=a[i][];
sum5+=a[i][];
sum6+=a[i][];
}
else if(jia[i]==){
sum1+=a[i][];
sum2+=a[i][];
sum3+=a[i][];
sum4+=a[i][];
sum5+=a[i][];
sum6+=a[i][];
}
else if(jia[i]==){
sum1+=a[i][];
sum2+=a[i][];
sum3+=a[i][];
sum4+=a[i][];
sum5+=a[i][];
sum6+=a[i][];
}
}
int mi=min(min(min(sum1,sum4),min(sum2,sum3)),min(sum5,sum6));
printf("%d\n",mi);
}
return ;
}

第七题 云云姐梦游仙境之决战史莱姆(返回顶部)

题意:输入n,再输入n个数,再输出数字m,问n个数里面的一些数字可不可以组成m

思路:dfs或者dp都可以过

 #include<stdio.h>
const int maxn=1e4+;
int a[],m,n;
bool flag;
void dfs(int i,int sum){
if(sum==m){
flag=true;return;
}
if(i==n){
return;
}
if(flag){
return;
}
dfs(i+,sum+a[i]);
dfs(i+,sum);
}
int main()
{
while(~scanf("%d",&n)){
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
scanf("%d",&m);
flag=false;
dfs(,);
if(flag){
printf("YES\n");
}
else{
printf("NO\n");
}
}
return ;
}

第八题 王韬韬学长之买绳子(返回顶部)

题意:题目说的比较清晰了,这里就不说了

思路:前缀和+求和公式

 #include<iostream>
#include<algorithm>
#include<math.h>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
const int maxn=;
int main()
{
int p[maxn],p1[maxn],n,m,q;
while(~scanf("%d%d",&n,&m)){
p[]=;
memset(p1,,sizeof(p1));
for(int i=;i<=n;i++){
scanf("%d",&q);
p[i]=(p[i-]+q)%m;//统计每个数包括他之前所有数之后和m的余数
p1[p[i]]++;//统计余数的数量
}
ll sum=;
for(int i=;i<m;i++){
if(!i){
sum=sum+p1[]+(ll)p1[]*(p1[]-)/;//当余数为0的时候,我们共有p1[0]+(ll)p1[0]*(p1[0]-1)/2种选择
}
else{
sum=sum+(ll)p1[i]*(p1[i]-)/;//当余数不为0的时候,我们共有p1[i]*(p1[i]-1)/2种选择
}
}
printf("%lld\n",sum);
}
return ;
}

第九题  Zxh学长的奇妙游戏(返回顶部)

题意:这题题目也是比较清晰了,这里就不说了

思路:找下规律,前缀和,然后排序,加n-m

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<vector>
#include<map>
#include<algorithm>
#include<functional>
#define ll long long
#define mem(a,b) memset(a,b,sizeof(a))
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=3e6+;
int s[maxn];
int t,n,m,a,b;
int main()
{
while(~scanf("%d%d",&n,&m)){
scanf("%d",&a);
int aa=a;
if(n==){
printf("0\n");continue;
}
int t=;
for(int i=;i<n;i++){
scanf("%d",&b);
s[t++]=b-a;
a=b;
}
if(m==){
printf("%d\n",b-aa);continue;
}
sort(s,s+t);
int sum=;
for(int i=;i<n-m;i++){
sum+=s[i];
}
printf("%d\n",sum);
}
return ;
}

第十题 众神所眷恋的幻想乡(返回顶部)

题意:题目过长,emmm,就是有两个boss有特殊技能,也会横、竖技能,一个boss会地图全覆盖,但问题是boss的实体的会挡住boss的技能走向,另一个boss会斜着发射十字架的技能。问有没有地方可以全躲,如果有输出yes,横坐标最小,再选择纵坐标最小;如果无,输出no

思路:模拟

 #include<iostream>
#include<cstring>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
using namespace std;
int g[][];
int n,m,k,sx,sy,t,xx,yy,ji;
void jiuheng(int x,int y){
if(sx==x && sy==y){return;}
for(int i=y;i<=m;i++){
if(sx==x && sy==i){break;}
g[x][i]=;
}
for(int i=y;i>=;i--){
if(sx==x && sy==i){break;}
g[x][i]=;
}
}
void jiuzhong(int x,int y){
if(sx==x && sy==y){return;}
for(int i=x;i<=n;i++){
if(sx==i && sy==y){break;}
g[i][y]=;
}
for(int i=x;i>=;i--){
if(sx==i && sy==y){break;}
g[i][y]=;
}
}
void er(int x,int y){
int x1=x,y1=y;if(sx==x1 && sy==y1){return;}
while(x1> && y1>){
g[x1][y1]=;x1--;y1--;if(sx==x1 && sy==y1){break;}
}
x1=x,y1=y;
while(x1<=n && y1>){
g[x1][y1]=;x1++;y1--;if(sx==x1 && sy==y1){break;}
}
x1=x,y1=y;
while(x1> && y1<=m){
g[x1][y1]=;x1--;y1++;if(sx==x1 && sy==y1){break;}
}
x1=x,y1=y;
while(x1<=n && y1<=m){
g[x1][y1]=;x1++;y1++;if(sx==x1 && sy==y1){break;}
}
}
void dd(int a,int b,int c){
if(sx==a && sy==b){return;}
if(c==){
jiuheng(a,b);
}else if(c==){
jiuzhong(a,b);
}else{
if(k==){
for(int i=b;i<=m;i++){
if(sx==a && sy==i){break;}
jiuzhong(a,i);
}
for(int i=b;i>=;i--){
if(sx==a && sy==i){break;}
jiuzhong(a,i);
}
}else{
er(a,b);
}
}
}
int main(){
while(~scanf("%d%d%d%d%d%d",&n,&m,&k,&sx,&sy,&t)){
mem(g,);
g[sx][sy]=;
for(int i=;i<t;i++){
scanf("%d%d%d",&ji,&xx,&yy);
dd(xx,yy,ji);
}
int aa=;g[sx][sy]=;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if(!g[i][j]){
printf("yes\n%d %d\n",i,j);
aa=;break;
}
}
if(!aa){break;}
}
if(aa){
printf("no\n");
}
}
return ;
}

第十一题 顾十二的神秘数字(返回顶部)

题意:这题是pat乙级的原题,题意很清楚

思路:模拟 或者 搜索

 #include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<vector>
#include<assert.h>
#include<cstring>
#include<map>
#include<stack>
#include<queue>
#define ll long long
using namespace std;
int xj(int x){
int su=;
while(x){
su+=x%;
x/=;
}
return su;
}
bool prime(int a){
if(a<){
return false;
}
for(int i=;i*i<=a;i++){
if(a%i==){
return false;
}
}
return true;
}
struct node{
int x,y;
};
node a[];
bool cmp(node a,node b){
if(a.x==b.x){
return a.y<b.y;
}
else{
return a.x<b.x;
}
}
int gcd(int a,int b){
return a%b==?b:gcd(b,a%b);
}
int main()
{
int t,k,m;
int i;
while(~scanf("%d",&t)){
while(t--){
scanf("%d%d",&k,&m);
int d=;
int e=;
for( i=; i<k; i++){
d*=;
}
for(i=d+;i<=d*; i+=){
if(xj(i)==m&&prime(gcd(xj(i+),xj(i)))){
a[e].x=xj(i+);
a[e++].y=i;
}
}
if(e==){
printf("N0 Solution\n");
}
else{
sort(a,a+e,cmp);
for(i=;i<e;i++){
printf("%d %d\n",a[i].x,a[i].y);
}
}
}
}
return ;
}
 #include<bits/stdc++.h>
using namespace std;
#define pi acos(-1)
#define ll long long
const int N = ;
const ll mod = ;
int gcd(int a,int b){return b==?a:gcd(b,a%b);}
int isp(int n){
if(n<=)return ;
for(int i=;i*i<=n;i++)
if(n%i==)return ;
return ;
}
int fg;
int a[]; void dfs(int l,int ed,int num,int n,int x){
if(num<)return ;
if(l==ed){
if(num>)return ;
cout<<x<<" ";
for(int i=;i<ed;i++)cout<<a[i];
cout<<num;
for(int i=;i<n;i++)cout<<;
cout<<endl;
fg=;
return ;
}
for(int i=;i<;i++){
if(i==&&l==)continue;
a[l]=i;
dfs(l+,ed,num-i,n,x);
}
}
int main()
{
int t,k,m;
cin>>t;
while(t--){
fg=;
cin>>k>>m;
for(int i=k-;i>;i--){
int n=m-i*+;
if(n<=)continue;
if(isp(gcd(n,m))){
dfs(,k-i,n-,i,n);
}
}
if(!fg)cout<<"N0 Solution"<<endl;
}
return ;
}

记得补题,题目两小时半还是挺困难ak的,毕竟我验题也验了几天的时间,题目基本没有锅。题目基本属于简单题

我的三道题都是很基本的题目,希望大家补题

这些题解都是我写的,如果有疑问可以qq问我

所有的核心代码都是c语言构成,无除社团课之外的知识点。

upd(12/8)心有点凉了……都手搓爱心,公式都不用。

ypACM社团年终赛暨实验室选拔赛题解的更多相关文章

  1. 2018年北京信息科技大学第十届程序设计竞赛暨ACM选拔赛题解

    链接:https://www.nowcoder.com/acm/contest/118/A 来源:牛客网 PUBG 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语 ...

  2. 2016广东工业大学新生杯决赛网络同步赛暨全国新生邀请赛 题解&源码

    Problem A: pigofzhou的巧克力棒 Description 众所周知,pigofzhou有许多妹子.有一天,pigofzhou得到了一根巧克力棒,他想把这根巧克力棒分给他的妹子们.具体 ...

  3. 2017年中国大学生程序设计竞赛-中南地区赛暨第八届湘潭市大学生计算机程序设计大赛题解&源码(A.高斯消元,D,模拟,E,前缀和,F,LCS,H,Prim算法,I,胡搞,J,树状数组)

    A------------------------------------------------------------------------------------ 题目链接:http://20 ...

  4. 2019 年「计算机科学与工程学院」新生赛 暨ACM集训队选拔赛 # 1

    T1 请问这还是纸牌游戏吗 https://scut.online/p/567 这道题正解据说是方根 这里先放着等以后填坑吧qwq 但是由于这道题数据是随机的 所以其实是有各种水法的(但是我比赛根本没 ...

  5. 江西理工大学南昌校区acm选拔赛题解

    第一题略 第二题 #include<stdio.h> int main() { int a1,a2,a3,b1,b3,b2,c1,c2,c3,n,sum,d1,d2,d3,i; scanf ...

  6. 第十届蓝桥杯省赛JavaB组个人题解

    前言 以下的第十届蓝桥杯Java B组省赛的题目题解只是我个人的题解,提供一些解题思路,仅作参考,如有错误,望大家指出,不甚感激,我会及时更改. 试题 A: 组队 ----- 答案:490 [问题描述 ...

  7. CSUST选拔赛题解

    本鶸鸡于本月10号参加了蔽校的选拔赛,成绩差的死,大部分的题都是赛后花了好长时间才补出来的,其中有些题还是靠QAQorz大佬帮忙才能解决,感谢Qls对我的帮助~接下来就附带上我的暴力题解,大佬们有更好 ...

  8. 2019 ICPC南昌邀请赛网络赛比赛过程及题解

    解题过程 中午吃饭比较晚,到机房lfw开始发各队的账号密码,byf开始读D题,shl电脑卡的要死,启动中...然后听到谁说A题过了好多,然后shl让blf读A题,A题blf一下就A了.然后lfw读完M ...

  9. CSUST 集训队选拔赛题解

    选拔赛的题解,~~~ 题目链接:请点击 A题 素数筛 + 线段树(树状数组) 先用素数筛打表,然后线段树更新,遍历求出值,O(1)查询即可 AC代码: /*num数组 是把记录 数是否存在 存在即为1 ...

随机推荐

  1. MyBatis Generator 超详细配置

    想快速开始,请直接拉到最后,看整体配置. MyBatis Generator 是 MyBatis 提供的一个代码生成工具.可以帮我们生成 表对应的持久化对象(po).操作数据库的接口(dao).CRU ...

  2. 题解 P5587 【打字练习】

    P5587 打字练习 想发一篇较为简洁易懂的题解,代码看起来长,实际上还是很好理解的,而且很多对称着写就行了 一道字符串签到题,比赛的时候小蒟蒻调了一个小时都没调出来一直RE,坑点还是不少的(主要是我 ...

  3. python接口自动化测试 - requests库的post请求进行文件下载

    前言 之前讲了文件上传,当然就有文件下载啦 文件下载操作步骤 极其简单,将二进制格式的响应内容存进本地文件中,根据需要下载的文件的格式来写文件名即可 down_url = 'https://www.i ...

  4. thinkphp中 model(模型)的使用

    首先:有三个数据表 现在用命令行建立它们的模型 php think make:model admin/Class php think make:model index/Teacher

  5. IntelliJ IDEA 2017.3尚硅谷-----滚轮修改字体大小

  6. buuctf wireshark

    首先下载文件夹 然后用wireshark进行分析 然后发现啥也不会然后查一下资料https://www.jianshu.com/p/55ec409c739e 然后根据资料找了tcp然后根据解析做出此题 ...

  7. FILES源代码

     FILESの源码 #include <bits/stdc++.h> #include <game.h> #define pause getchar(); #define c ...

  8. 使用jenkins 实现 .net core项目自动发布到 docker

    在Docker内运行Jenkins pull镜像  docker pull jenkins/jenkins:lts Dockerfile FROM jenkins/jenkins:lts USER r ...

  9. uni-app 去除顶部导航栏

    自学uni-app第一天,因为有一点点的小程序和vue的基础所以感觉对uni-app有一点点的亲切感,从今天呢开始着手从登录页学习uni-app,记录一些用到的知识点,欢迎大家一起学习. 启动页隐藏顶 ...

  10. Java8 Lambda使用指南

    Java8 Lambda 的使用指南 原文地址:https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#s ...