Source Code 湘潭大学 c语言程序设计答案(4)

2018-11-27 18:45

{

int ca; cin>>ca; gets(s); while(ca--) { gets(s);

for(int i=0;s[i]!='\\0';i++) {

// cout<='A'&&s[i]<='Z') {

if(s[i]=='F'&&s[i+1]=='F') {

cout<<'V'; i++; } else {

char a; a=s[i+1];

cout<

cout<

// system(\ }

cout<

return 0; }

8.重构二叉树

#include using namespace std;

char a[100],b[100],s[100][3];

int cases,n,i,lena,lenb,c[100],d[100]; struct haha { char c; int k; }tree[100];

16

void insert(char cc,int i)

{

if(c[cc]

if(tree[2*i].c=='#') { tree[2*i].c=cc; tree[2*i].k=c[cc]; d[cc]=2*i; } else insert(cc,2*i); } else {

if(tree[2*i+1].c=='#') { tree[2*i+1].c=cc; tree[2*i+1].k=c[cc]; d[cc]=2*i+1; } else insert(cc,2*i+1); } }

int main() {

scanf(\while(cases--) {

for(i=0;i<100;i++) tree[i].c='#'; scanf(\

for(i=1;i<=n;i++) scanf(\ lena=strlen(a);lenb=strlen(b); //a[lena+1]='\\0';

// for(i=lena;i>0;i--) a[i]=a[i-1];

for(i=0;i

tree[1].c=a[0];tree[1].k=c[a[0]];d[a[0]]=1; for(i=1;i

printf(\ for(i=2;i<=n;i++)

printf(\ printf(\}

return 0; }

9.食物链

Acceteped : 322 Submit : 1049

Time Limit : 1000 MS Memory Limit : 65536 KB

Description

动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并

17

不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是\,表示X和Y是同类。 第二种说法是\,表示X吃Y。 此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。 1) 当前的话与前面的某些真的话冲突,就是假话; 2) 当前的话中X或Y比N大,就是假话; 3) 当前的话表示X吃X,就是假话。

你的任务是根据给定的N(1 <= N <= 50,000)和K句话(0 <= K <= 100,000),输出假话的总数。

输入:

第一行是两个整数N和K,以一个空格分隔。

以下K行每行是三个正整数 D,X,Y,两数之间用一个空格隔开,其中D表示说法的种类。

若D=1,则表示X和Y是同类。 若D=2,则表示X吃Y。

输出:

只有一个整数,表示假话的数目。

Sample Input 100 7 1 101 1 2 1 2 2 2 3 2 3 3 1 1 3 2 3 1 1 5 5

Sample Output 3

Source Code

Problem: 1047 User: 2009551233 Memory: 864K Time: 530MS Language: C++ Result: Accepted

18

Source Code

#include int f[50001],r[50001];

int fs(int i) {

if (f[i]==i) return i; int t=f[i]; f[i]=fs(f[i]);

r[i]=(r[t]+r[i])%3; return f[i]; }

void un(int x,int y,int h) {

int a=fs(x),b=fs(y); f[a]=b;

r[a]=(r[y]-r[x]+3+h)%3; }

int main() {

int n,k,i,ans(0);

scanf(\ for (i=1;i<=n;++i) f[i]=i; for (i=0;i

scanf(\ if (x>n || y>n) {++ans;continue;} if (d==1) {

if (fs(x)==fs(y)) {

if (r[x]!=r[y]) ++ans; } else un(x,y,0); } else {

if (fs(x)==fs(y)) {

if (r[x]!=(r[y]+1)%3) ++ans; } else un(x,y,1); } }

printf(\ return 0; }

19

10.John的农场

Acceteped : 397 Submit : 687

Time Limit : 1000 MS Memory Limit : 65536 KB

Description

John是一个农场主,他有几个牧场,为了好好照顾他的牛,他必须在几个牧场之间来回,可糟糕的天气往往使得道路非常泥泞,为此John准备在牧场之间铺一些石子路,这样在下雨天也能快速地从一个牧场到另外一个牧场。但John的资金有限,为了自己能从任一个牧场都通过石子路到达另外一个牧场,他需要好好设计一下线路。请帮助John设计好线路,使得John能从任一个牧场都通过石子路到达另外一个牧场,且线路的费用最低。

输入:

第一行是一个整数K,表示有多少个测试用例,以后每个测试用例占n+1行。每个测试用例的第一行为一个整数n(3<=n<=20),表示有多少个牧场,从第二行开始为一个n*n的矩阵,矩阵元素aij表示从i个牧场到j个牧场的铺路费用。

输出:

每行输出一个测试用例的最小铺路费用。

Sample Input 2 6

0 6 1 5 0 0 6 0 5 0 3 0 1 5 0 5 6 4 5 0 5 0 0 2 0 3 6 0 0 6 0 0 4 2 6 0 4

0 1 2 3 1 0 3 4 2 3 0 1 3 4 1 0

Sample Output 15 4

20


Source Code 湘潭大学 c语言程序设计答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学体验英语综合教程4课文翻译 unit2 PB文化存在差异吗

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: