第一题 帅学长的爱心

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

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

第四题 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)心有点凉了……都手搓爱心,公式都不用。

最新文章

  1. 高级sql注入
  2. assert的用法
  3. 爱上MVC~在Views的多级文件夹~续~分部页的支持
  4. javascript和web debug技术
  5. ELF--动态链接
  6. jsp与servlet之间的参数传递【转】
  7. c编程:用户输入一个数值n,打印出出1到n之间的所有质数
  8. Java数据结构与算法(4) - ch04队列(Queue和PriorityQ)
  9. 初识 ActiveMQ
  10. Intellij Idea配置说明(从Eclipse转Idea)
  11. EXCEL日期格式要双击一下单元格才变正确格式
  12. 【夯实PHP基础】PHPUnit -- PHP测试框架
  13. 《转》Logistic回归 多分类问题的推广算法--Softmax回归
  14. 洛谷 P1120 小木棍 [数据加强版]解题报告
  15. 一起使用mock数据动态创建表格
  16. 【Django】【环境配置】Mac
  17. PhoneGap开发的android项目环境搭建简单流程
  18. IBM V7000错误代码及解决
  19. Vue学习笔记之Vue知识点补充
  20. Android开发多媒体应用之SoundPool的使用的代码

热门文章

  1. 【C语言】复合函数求值
  2. 每天进步一点点------Xilinx IP 内核
  3. 【原】AMFObject数据格式详解
  4. 关于Excel,你一定用的到的36个Python函数
  5. python开发基础02-字符串操作方法练习题
  6. 第十篇 深入Python的dict和set(一)
  7. CTF_论剑场 名侦探柯南
  8. 【StarUML】用例图
  9. win7安装composer(PHPStudy环境)
  10. snowflake 雪花算法 分布式实现全局id生成