题目地址:点击打开链接

还是太弱。

英文太差。,,

预计要等待被虐了。。

1077

找最长的公共后缀,暴力就能够写:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std; char a[105][1005];
int milen; void myreverse(char *s)
{
int len=strlen(s);
milen=min(len,milen);
for(int i=0; i<len/2; i++)
{
char tmp=s[i];
s[i]=s[len-1-i];
s[len-1-i]=tmp;
}
} int main()
{
int n,i,j; while(cin>>n)
{
gets(a[0]);
milen=10005; for(i=0; i<n; i++)
{
gets(a[i]);
myreverse(a[i]);
} for(i=0; i<milen; i++)
{
int flag=0;
for(j=1; j<n; j++)
{
if(a[j][i]!=a[0][i])
{
flag=1;
break;
}
}
if(flag) break;
} int p=i;
char ans[1005];
for(i=0; i<p; i++)
ans[i]=a[0][i];
ans[i]='\0';
myreverse(ans); if(p==0) puts("nai");
else printf("%s\n",ans); }
return 0;
} /*
3
Itai nyan~
Ninjin wa iyadanyan~
uhhh nyan~ 3
Itai!
Ninjinnwaiyada T_T
T_T
*/

1078:

hash散列啊,二次探測啊,单词看不懂。。

#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
const int maxn=20005; int prim[maxn];
int mp[maxn];
int tmpprim[maxn]; int visi[maxn];
int ans[maxn]; void sxprim()
{
int i,j;
memset(prim,1,sizeof(prim));
prim[1]=0; for(i=2;i<maxn;i++)
{
if(prim[i])
{
for(j=i*2;j<maxn;j+=i)
prim[j]=0;
}
} int cnt=0;
for(i=maxn-1;i>=2;i--)
{
if(prim[i])
tmpprim[cnt++]=i;
} for(i=0;i<cnt-1;i++)
{
int tmp=tmpprim[i];
int k=tmpprim[i+1];
for(j=tmp;j>k;j--)
mp[j]=tmp;
} for(j=1;j<=tmpprim[cnt-1];j++)
mp[j]=tmpprim[cnt-1]; //for(i=1;i<=20;i++)
//cout<<i<<" "<<mp[i]<<endl;
} int main()
{
sxprim(); int mod,n,i; while(cin>>mod>>n)
{
mod=mp[mod]; //re-defined
memset(visi,0,sizeof(visi)); for(i=0;i<n;i++)
{
int x;
cin>>x;
int cur=x%mod;
if(!visi[cur])
{
visi[cur]=1;
ans[i]=cur;
}
else
{
int cnt=1;
int flag=0;
while(cnt<=maxn) //探測法都搞错了。。
{
int p=(cnt*cnt+cur)%mod;
if(!visi[p])
{
visi[p]=1;
ans[i]=p;
flag=1;
break;
}
cnt++;
} if(!flag)
ans[i]=-1;
}
} for(i=0;i<n;i++)
{
if(i) cout<<" ";
if(ans[i]>=0) cout<<ans[i];
else cout<<"-";
}
cout<<endl;
}
return 0;
} /*
11 8
2 2 2 2 2 2 2 2
*/

1079:

就是给你一颗树。找叶子结点,叶子结点有值,然后从根往下每一层会以r%添加。

不预处理会超时。。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
const int maxn=100005;
using namespace std; vector <int> mq[maxn];
int n;
double p,r; /*double cal(int step)
{
double ans=p;
for(int i=0; i<step; i++)
ans=ans*(r/100.0+1.0);
return ans; }*/ double tt[maxn];
void cal() //预处理之后就不会超时了,时间换空间
{
tt[0]=p;
for(int i=1;i<maxn;i++)
tt[i]=tt[i-1]*(1.0+r/100.0);
} int height[maxn];
double val[maxn]; double ans; void dfs(int cur)
{
int len=mq[cur].size();
int i;
if(len==0)
{
ans+=val[cur]*tt[height[cur]];
return;
}
else
{
for(i=0;i<len;i++)
{
int p=mq[cur][i];
height[p]=height[cur]+1;
dfs(p);
}
}
} int main()
{
int i;
while(cin>>n)
{
cin>>p>>r;
cal();
for(i=0; i<n; i++)
mq[i].clear();
height[0]=0; int x,chi;
for(i=0; i<n; i++)
{
cin>>x;
if(x)
{
while(x--)
{
cin>>chi;
mq[i].push_back(chi);
}
}
else
{
cin>>val[i];
}
} ans=0;
dfs(0);
printf("%.1f\n",ans);
}
return 0;
} /*
10 1.80 1.00
3 2 3 5
1 9
1 4
1 7
0 7
2 6 1
1 8
0 9
0 4
0 3
*/

1080:

这个最后也仅仅能拿24分/30分。有个错误。有个数据跑出来段错误。

我预计是数据是每一个学校定额有0的情况。

。不然错的没道理啊。。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#include<set>
const int maxn=40005;
using namespace std; int n,m,k;
int peo[maxn];
//set <int> ans[maxn];
//set <int> ::iterator mq;
vector <int> ans[105]; struct node
{
int index;
int ge;
int gi;
int total;
int aim[6];
}nod[maxn]; struct nodd
{
int ge;
int gi;
}last[105]; //暂存每一个学校录取成绩最低的人。假设有同样成绩的也加进去 int cmp(node p1,node p2)
{
if(p1.total>p2.total) return 1;
else if(p1.total==p2.total&&p1.ge>p2.ge) return 1;
//else if(p1.total==p2.total&&p1.ge==p2.ge&&p1.gi>p2.gi) return 1;
return 0;
} int main()
{
int i,j;
int a[10];
while(cin>>n>>m>>k)
{
for(i=0;i<n;i++)
ans[i].clear();
for(i=0;i<m;i++)
cin>>peo[i]; for(i=0;i<n;i++)
{
cin>>nod[i].ge>>nod[i].gi;
for(j=0;j<k;j++)
cin>>nod[i].aim[j];
nod[i].total=nod[i].ge+nod[i].gi;
nod[i].index=i;
} sort(nod,nod+n,cmp);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
a[j]=nod[i].aim[j];
for(j=0;j<m;j++)
{
if(peo[a[j]])
{
peo[a[j]]--;
ans[a[j]].push_back(nod[i].index);
if(peo[a[j]]==0)
{
last[a[j]].ge=nod[i].ge;
last[a[j]].gi=nod[i].gi;
}
break;
}
else
{
if(nod[i].ge==last[a[j]].ge&&nod[i].gi==last[a[j]].gi)
{
ans[a[j]].push_back(nod[i].index);
break;
}
}
}
} for(i=0;i<m;i++)
{
if(ans[i].size()==0) puts("");
else
{
int len=ans[i].size();
sort(ans[i].begin(),ans[i].end());
/*mq=ans[i].begin(); int flag=0;
for(;mq!=ans[i].end();mq++)
{
if(flag) cout<<" ";
else flag=1;
cout<<*mq;
}*/
for(j=0;j<len;j++)
{
if(j>0) cout<<" ";
cout<<ans[i][j];
}
cout<<endl;
}
}
}
return 0;
} /*
11 6 3
2 1 2 2 2 3
100 100 0 1 2
60 60 2 3 5
100 90 0 3 4
90 100 1 2 0
90 90 5 1 3
80 90 1 0 2
80 80 0 1 2
80 80 0 1 2
80 70 1 3 2
70 80 1 2 3
100 100 0 2 4
*/

浙大PAT考试1077~1080(2014上机复试题目)的更多相关文章

  1. 浙大PAT考试1013~1016(最伤的一次。。)

    我能说我1016WA了几天都不得最后还是拿别人代码交的么. .. 真心找不到那个神数据.. . 自己把整个程序的流程都画出来了.细致推敲是木有问题的啊... 题目地址:点击打开链接 先从1013開始介 ...

  2. PAT 乙级 1077

    题目 题目地址:PAT 乙级 1077 题解 本题没什么难度,但是要注意细节问题,下面简单来说一下: vector 把输入的学生打分存起来,直接用算法库中的 sort 函数给它们排个序,之后直接剔除首 ...

  3. 浙大 PAT 乙级 1001-1075 目录索引

    1001. 害死人不偿命的(3n+1)猜想 1002. 写出这个数 1003. 我要通过! 1004. 成绩排名 1005. 继续(3n+1)猜想 1006. 换个格式输出整数 1007. 素数对猜想 ...

  4. PAT Basic 1077

    1077 互评成绩计算 在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一 ...

  5. PAT(B) 1077 互评成绩计算(Java)

    题目链接:1077 互评成绩计算 (20 point(s)) 题目描述 在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这 ...

  6. A题进行时--浙大PAT 1001-1010

    pat链接:http://pat.zju.edu.cn 1 #include<stdio.h> 2 int main(){ 3 int a,b; 4 int c; 5 while(scan ...

  7. 浙江大学PAT考试1069~1072(2013-11-2)

    11 题目地址:http://pat.zju.edu.cn/contests/pat-a-practise 1069: 由下降序和上升序两个四位数不断相减,然后得到新数据,始终会到达一个数字终止. 递 ...

  8. 浙江大学PAT考试1009~1012(1010上帝是冠军。。)

    哎,pat1010即使java书面,只有java书面,还增加了两个点,,.啊,智商捉佳,主要pat有些不给明确的范围.造成遐想空间.. 还是按顺序介绍.. 题目地址:http://pat.zju.ed ...

  9. 浙大pat 1035题解

    1035. Password (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To prepare f ...

随机推荐

  1. 2016-2017 ACM-ICPC, Egyptian Collegiate Programming Contest (ECPC 16)

    A.The game of Osho(sg函数+二项展开) 题意: 一共有G个子游戏,一个子游戏有Bi, Ni两个数字.两名玩家开始玩游戏,每名玩家从N中减去B的任意幂次的数,直到不能操作判定为输.问 ...

  2. 以太坊源码分析(52)以太坊fast sync算法

    this PR aggregates a lot of small modifications to core, trie, eth and other packages to collectivel ...

  3. POJ 1061 青蛙的约会 | 同余方程和exGcd

    题解: 要求s+px=t+qx (mod L) 移项 (p-q)x=t-s (mod L) 等价于 (p-q)x+Ly=t-s 即ax+by=c的方程最小非负根 exGcd后乘个C #include& ...

  4. 将PHP程序中返回的JSON格式数据用gzip压缩输出

    //phpinfo(); 搜索下 zlib 是否开启 //此示例开启压缩 Content-Length:124 Size: 404B //未开启gzip压缩 Content-Length:675 Si ...

  5. openstack内外网ip实现

    类似于阿里云ECS主机的内外网(双网卡不通网段)的结构,最终实现内外网区分隔离. https://www.aliyun.com/product/ecs/?utm_medium=text&utm ...

  6. linux之expr命令

    expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字符串提取.字符串长度计算等功能.它还具有几个特殊功能,判断变量或参数是否为整数.是否为空.是否为0等. 先看expr命令的info文档in ...

  7. NuGet Package Manager 实用命令

    Creating Help Pages for ASP.NET Web API Install-Package Microsoft.AspNet.WebApi.HelpPage Install-Pac ...

  8. USACO silver P1

    原题概述题意: 共有N个数,每个数的个数为ai,ai的总和为M,将每2个数进行配对,要求使配对之后2数的和的最大值最小,并输出最小值. 这不就是裸的贪心么..实在是水题啊, 不过如果假如有一个人要一个 ...

  9. 先刷一波简单的web前端面试题

    1简述一下src与href的区别href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接.src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置 ...

  10. HDU6383 2018 “百度之星”程序设计大赛 - 初赛(B) 1004-p1m2 (二分)

    原题地址 p1m2 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...