江西理工大学c语言考试题库,江西理工大学C语言程序设计竞赛(初级组)(示例代码)...

JankTao相亲记

解法:排序

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

const double INF = 1e20;

const double pi = acos(-1.);

int main()

{

int t;

int a[100];

while(cin>>t)

{

while(t--)

{

for(int i=0;i<11;i++)

{

cin>>a[i];

}

sort(a,a+11);

printf("%d\n",a[9]);

}

}

return 0;

}

David的沙漠之路

解法:贪心,尽量往最大的距离走,加上它经历过的加油站中最大的那个,模拟这个过程需要考虑很多情况

#include

#include

#include

using namespace std;

struct cmp

{

bool operator ()(int &a,int &b)

{

return a

}

};

struct node

{

int x,y;

} e[1005];

int main()

{

priority_queue,cmp>que;

int T;

scanf("%d",&T);

while(T--)

{

int n,l,s,x,y,cnt=0,flag=0,f=0;

scanf("%d%d%d",&n,&l,&s);

for(int i=0; i

{

scanf("%d%d",&e[i].x,&e[i].y);

}

e[n].x=0,e[n].y=l;

for(int i=0; i<=n; i++,f=0)

{

x=e[i].x,y=e[i].y;

if(y<=s)

{

que.push(x);

f=1;

//最长可以横跨多少加油站,把他们放在队列里

}

while(y>=s)

{

if(s>=l) break;

if(!f && s==y)

{

que.push(x);

f=1;

//没有横跨,刚刚好到达

}

if(que.empty())

{

printf("TJ\n");

flag=1;

break;

}

int xx=que.top();//取最近的加油站

que.pop();

s+=xx;

cnt++;

}

if(!f) que.push(x);

if(s>=l)

{

printf("%d\n",cnt);

flag=1;

break;

}

if(flag) break;

}

if(!flag) printf("TJ\n");

while(!que.empty()) que.pop();

}

return 0;

}

TJ的文件系统

解法:字符串处理

#include

//#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3fffffff

#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

#define LL long long

using namespace std;

const int maxn = 22;

int main()

{

int t;

int n;

int i;

int j;

string s,ss;

while(cin>>t)

{

while(t--)

{

string sss="";

int ans;

cin>>n>>s;

for(i=0;i

{

string sss="";

cin>>ss;

ans=ss.find(".");

// cout<

for(j=ans+1;j

{

sss+=ss[j];

}

// cout<

if(sss==s)

{

cout<

}

}

}

}

return 0;

}

握手定理

解法:水题

#include

int main()

{

int SEQ, ACK1, ACK2, T;

scanf("%d", &T);

while(T--)

{

scanf("%d %d %d", &SEQ, &ACK1, &ACK2);

if((ACK1 == SEQ + 1) && (ACK2 == ACK1 + 1))

{

printf("QWN3213\n");

}

else

printf("TJ\n");

}

return 0;

}

Alice AND Bob

解法:模拟

#include

//#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3fffffff

#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

#define LL long long

using namespace std;

int a[100000],b[100000],c[100000];

int main()

{

int t;

int i,j;

int n,m;

int x,y;

int k;

cin>>t;

while(t--)

{

k=0;

cin>>n>>m;

memset(a,0,sizeof(a));

memset(b,0,sizeof(b));

for(i=0;i

{

cin>>x;

a[x]++;

}

for(i=0;i

{

cin>>y;

b[y]++;

}

for(i=0;i<100000;i++)

{

if(a[i]&&b[i])

c[k++]=i;

}

for(i=0;i

{

if(i==0)

{

printf("%d",c[i]);

}

else

{

printf(" %d",c[i]);

}

}

cout<

}

return 0;

}

建群数据

解法:字符串处理时间

#include

//#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3fffffff

#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

#define LL long long

using namespace std;

struct P

{

int number;

int hhmmss;

}hehe[100000];

int cmp(P a,P b)

{

if(a.number==b.number)

return a.hhmmss

else

return a.number

}

string s,ss,sss,ssss;

string sssss;

int t,n;

int a;

int i,j;

int ans;

int poi;

int num;

int main()

{

cin>>t;

while(t--)

{

poi=1;

cin>>n;

for(i=0;i

{

cin>>a>>s;

hehe[i].number=a;

ss=s.substr(0,2);

sss=s.substr(2,2);

ssss=s.substr(4,2);

// cout<

hehe[i].hhmmss=((ss[0]-‘0‘)*10+(ss[1]-‘0‘)*1)*3600+((sss[0]-‘0‘)*10+(sss[1]-‘0‘))*60+((ssss[0]-‘0‘)*10+(ssss[1]-‘0‘));

}

cin>>sssss;

ss=sssss.substr(0,2);

sss=sssss.substr(2,2);

ssss=sssss.substr(4,2);

ans=((ss[0]-‘0‘)*10+(ss[1]-‘0‘))*3600+((sss[0]-‘0‘)*10+(sss[1]-‘0‘))*60+((ssss[0]-‘0‘)*10+(ssss[1]-‘0‘));

sort(hehe,hehe+n,cmp);

num=hehe[0].hhmmss;

for(int i=1;i

{

if(hehe[i].number!= hehe[i-1].number||hehe[i].hhmmss-num>ans)

{

poi++;

num=hehe[i].hhmmss;

}

}

printf("%d\n",poi);

}

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值