2013年江西理工大学C语言程序设计竞赛(高级组)
A
解法:dfs搜索,注意一个剪枝,否则会超时(听说原本是个dp)?
#include<stdio.h>
//#include<bits/stdc++.h>
#include<string.h>
#include<iostream>
#include<math.h>
#include<sstream>
#include<set>
#include<queue>
//#include<map>
#include<vector>
#include<algorithm>
#include<limits.h>
#define inf 0x3fffffff
#define INF 0x3f3f3f3f
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define ULL unsigned long long
using namespace std;
int n,m,k,MIN;
int v,u,w;
int i,j;
int map[1100][1100];
void dfs(int s,int num,int sum)
{
if(s==n)
{
MIN=min(sum,MIN);
return ;
}
if(num==k)
return ;
for(int i=1;i<=n;i++)
{
if(map[s][i]!=-1&&sum+map[s][i]<=MIN)
dfs(i,num+1,sum+map[s][i]);
}
}
int main()
{
while(~scanf("%d%d%d",&n,&m,&k))
{
if(n+m+k==0) break;
memset(map,-1,sizeof(map));
for(i=0;i<m;i++)
{
cin>>u>>v>>w;
map[u][v]=map[v][u]=w;
}
MIN=inf;
dfs(1,0,0);
if(MIN==inf)
{
puts("CONTINUE LOL!");
}
else
{
printf("%d\n",MIN);
}
}
return 0;
}
B
解法:模拟,移动数组
#include <stdio.h>
int main()
{
int n,q;
int a[100];
while(~scanf("%d%d",&n,&q)&&(n+q))
{
int xi;
int c=1;
for(int i=1;i<=n;i++)
{
a[i-1]=c;
c++;
}
while(q--)
{
scanf("%d",&xi);
int b=a[xi-1];
for(int i=xi-1;i>=0;i--)
{
a[i]=a[i-1];
}
a[0]=b;
}
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
return 0;
}
C
解法:字符串匹配
#include<stdio.h>
#include<string.h>
int main()
{
char a[100000];
char b[100000];
int n;
while(scanf("%d",&n)!=EOF)
{
while(n--)
{
scanf("%s%s",a,b);
if(strstr(b,a)!=NULL)
printf("YES\n");
else
printf("NO\n");
}
}
}
D
解法:链接:http://blog.csdn.net/ramay7/article/details/50328357
#include <stdio.h>
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
long long u, d, ans, cases = 0,t;
while (~scanf("%lld%lld", &u, &d))
{
if(u==0&&d==0) break;
ans = 0;
while (d)
{
ans += u / d;
t = u%d;
u = d;
d = t;
}
printf("%lld\n", ans);
}
return 0;
}
E
解法:链接http://acm.hdu.edu.cn/showproblem.php?pid=1205
#include <stdio.h>
int a[1000100];
int main()
{
int i,n,t,max;
int sum;
scanf("%d",&t);
while(t--)
{
sum=0;
scanf("%d",&n);
max=-1;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
if(a[i]>max) max=a[i];
}
// printf("%d %d\n",Max,sum);
sum=sum-max+1;
if(sum>=max) printf("Yes\n");
else printf("No\n");
}
return 0;
}
F
解法:模拟
#include <iostream>
#include<stdio.h>
using namespace std;
typedef struct stdust
{
char name[100];
int score;
} hehe; int main ()
{
int n,x,i,sum,zhang,d;
cin>>x;
{
while(x--)
{
cin >> n;
sum=0;
zhang=0;
hehe stdust[n];
for (int i=0; i<n; i++)
cin >> stdust[i].name >> stdust[i].score;
for(int i=0; i<n; i++)
{
if(stdust[i].score<=40)
sum+=1;
if(stdust[i].score>40)
{
if(stdust[i].score%40==0)
d=stdust[i].score/40;
else
d=stdust[i].score/40+1;
sum+=d;
zhang+=3;
} }
cout<<sum<<" "<<zhang<<endl;
}
}
}
G
解法:没有什么好说的
#include<stdio.h>
int main()
{
int n,a,sum;
while(scanf("%d",&n),n)
{
sum=0;
while(n--)
{
scanf("%d",&a);
sum+=a;
}
printf("%d\n",sum);
}
return 0;
}
H
解法:暂无(记忆化搜索??)
2013年江西理工大学C语言程序设计竞赛(高级组)的更多相关文章
- 2014江西理工大学C语言程序设计竞赛高级组题解
1001 Beautiful Palindrome Number 枚举回文数字前半部分,然后判断该数字是否满足,复杂度为O(sqrt(n))! 1002 Recovery Sequence 本题的核 ...
- 2017年江西理工大学C语言程序设计竞赛(高级组)
问题 A: 求近似值 #include <stdio.h> #include <time.h> #include <stdlib.h> using namespac ...
- 2018年江西理工大学C语言程序设计竞赛(高级组) 三角平方数
题目描述 三角数:形如图a,圆点摆放成等边三角形的数字,则为三角数. (图a) 平方数:形如图b,小方块摆放成正方形的数字,则为平方数. (图b) 那么如果一个数字既是三角形数又是平方数,则称为三角平 ...
- 2018年江西理工大学C语言程序设计竞赛高级组部分题解
B Interesting paths 考察范围:组合数学 此题是机器人走方格的变种,n*m的网格,从(1,1)走到(n,m),首先可以明确,水平要走m-1格,竖直要走n-1格,则走到目的地的任意一条 ...
- 2018年江西理工大学C语言程序设计竞赛(初级组)一
C语言竞赛初级组第一.二场答案:https://www.cnblogs.com/xingkongyihao/p/10046918.html A: 逆序对 时间限制: 1 s 内存限制: ...
- 2013年江西理工大学C语言程序设计竞赛(初级组)
ACM ICPC WORLD FINAL 解法:排序大家都知道,去重的话,初学者用数组就好了 #include<algorithm> #include<iostream> us ...
- 2017年江西理工大学C语言程序设计竞赛(初级组)
问题 A: Petr的盒子(初) #include <iostream> #include <stdio.h> #include <algorithm> using ...
- 2014江西理工大学C语言程序竞赛高级组
Beautiful Palindrome Number 题意:求N里面有多少个符合要求的数字(数字要求:回文数,且前一半部分是不严格递增) 解法:打表 #include<bits/stdc++. ...
- 2016年江西理工大学C语言程序设计竞赛(高级组)
问题 A: jxust 解法:争议的问题(是输入整行还是输入字符串),这里倾向输入字符串,然后判断是否含有jxust就行 #include<bits/stdc++.h> using nam ...
随机推荐
- TPageControl组件
TPageControl的功能是创建多个Dialog页,而这些重叠的每一个页Dialog就是通过TTabSheet对象实现的
- bean中集合属性的配置
在实际的开发中,有的bean中会有集合属性,如下: package com.sevenhu.domain; import java.util.List; /** * Created by hu on ...
- C语言 单引号 双引号问题
C语言中的单引号和双引号含义迥异,用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值,因此,采用ASCII字符集的编译器而言,‘a’的含义与0141或97严格一 ...
- python3使用csv模块读写csv文件
python3使用csv模块读写csv文件 读取csv文件: import csv #打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open() ...
- 表单和验证事件以及marquee标签
1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...
- Eclipse字符集设置方式
默认的字符集是GBK 1.windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右侧Text fi ...
- 典型的检查对float精度理解的代码
-rand()%); vy = ); vz = ); pList_particle[i].m_velocity = Vector3(vx,vy,vz); ... 1,3行代码的vx和vz的值域可以通过 ...
- 衣明志是个SB
面试碰到衣明志,问了些傻逼问题,尼玛就是一不折不扣的蠢驴. 这个人太能装了,而且水平也不咋地.
- 利用foreach对页面控件的遍历 及三目运算符的使用
1.利用foreach对页面控件的遍历 及三目运算符的使用 利用div将一组CheckBox放在一起用于遍历 <body> <form id="form1" ru ...
- python核心编程学习记录之基础知识
虽然对python的基础知识有所了解,但是为了更深入的学习,要对python的各种经典书籍进行学习 第一章介绍python的优缺点,略过 第二章介绍python起步,第三章介绍python基础,仅记录 ...