LevOJ平台.sln
P1943 内存不够了
问题描述
解决方法
#include <stdio.h>
#include <stdlib.h>
enum{
N=100000
};
int main() {
int n, m;
scanf("%d %d", &n, &m);
char **text = malloc(n * sizeof(char *));
for (int i = 0; i < n; i++) {
text[i] = malloc((N + 1) * sizeof(char));
}
int *len = malloc(n * sizeof(int));
int *find = malloc(m * sizeof(int));
for (int i = 0; i < n; i++) {
scanf("%d %s", &len[i], text[i]);
}
for (int i = 0; i < m; i++) {
scanf("%d", &find[i]);
}
for (int i = 0; i < m; i++) {
printf("%s\n", text[find[i] - 1]);
}
for (int i = 0; i < n; i++) {
free(text[i]);
}
free(text);
free(len);
free(find);
return 0;
}
P1944 喜提Time Limit Exceeded
问题描述
解决方法
#include <stdio.h>
#include <stdlib.h>
enum {
N = 20000
};
void swap(int order[], int a1, int a2) {
int temp = order[a1 - 1];
order[a1 - 1] = order[a2 - 1];
order[a2 - 1] = temp;
}
int main() {
int n, m;
scanf("%d %d", &n, &m);
char **text = malloc(n * sizeof(char *));
for (int i = 0; i < n; i++) {
text[i] = malloc((N + 1) * sizeof(char));
}
int *order = malloc(n * sizeof(int));
int (*s)[2] = malloc(m * sizeof(*s));
for (int i = 0; i < n; i++) {
order[i] = i;
scanf("%s", text[i]);
}
for (int i = 0; i < m; i++) {
scanf("%d %d", &s[i][0], &s[i][1]);
swap(order, s[i][0], s[i][1]);
}
for (int i = 0; i < n; i++) {
printf("%s\n", text[order[i]]);
}
for (int i = 0; i < n; i++) {
free(text[i]);
}
free(text);
free(order);
free(s);
return 0;
}
有些人,没有TLE,倒是MLE了...
P2096 猜数字
问题描述
解决方法
#include <stdio.h>
#include <math.h>
double avg(int arr[], int n)
{
double sum = 0;
for (int i = 0; i < n; i++)
{
sum += arr[i];
}
return sum / n / 2.0;
}
int main()
{
char name[10][10];
int guess[10] = {0};
double average;
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%s %d", name[i], &guess[i]);
}
average = avg(guess, n);
double min = 100;
int record = -1;
for (int i = 0; i < n; i++)
{
if (fabs(guess[i] - average) < min)
{
min = fabs(guess[i] - average);
record = i;
}
}
printf("%d %s\n", (int)average, name[record]);
return 0;
}
忍不住吐槽这题,为什么要跟平均数的一半比啊/恼
P2097 乘法口诀数列
问题描述
解决方法
#include <stdio.h>
int main() {
int ans[100];
int a1,a2,n;
scanf("%d%d%d",&a1,&a2,&n);
ans[0]=a1;
ans[1]=a2;
int j=2;
for(int i=0;i<10;i++){
if (ans[i]*ans[i+1]>9)
{
ans[j]=(ans[i]*ans[i+1])/10;
j++;
ans[j]=(ans[i]*ans[i+1])%10;
j++;
}
else
{
ans[j]=ans[i]*ans[i+1];
j++;
}
}
for(int i=0;i<n;i++){
printf("%d ",ans[i]);
}
printf("\n");
return 0;
}
P2098 试试手气
问题描述
解决方法
#include <stdio.h>
int main()
{
int index[6][6] = {0};
int n;
for (int i = 0; i < 6; i++)
{
scanf("%d", &index[0][i]);
}
scanf("%d", &n);
for (int i = 0; i < 6; i++)
{
int temp = 6;
for (int j = 1; j <= 5;)
{
if (temp==index[0][i])
{
temp--;
}
else
{
index[j][i] = temp;
temp--;
j++;
}
}
}
for (int i = 0; i < 6; i++)
{
printf("%d ", index[n][i]);
}
printf("\n");
return 0;
}
P2099 机工士姆斯塔迪奥
问题描述
解决方法
#include <stdio.h>
int main() {
int n, m, s, map[100][100]={0};
scanf("%d%d%d", &n, &m, &s);
int rc, ind, cnt=0;
for(int i=0; i<s; i++) {
scanf("%d%d", &rc, &ind);
switch (rc)
{
case 0:
for (int i = 0; i < m; i++)
{
map[ind-1][i] = 1;
}
break;
case 1:
for (int i = 0; i < n; i++)
{
map[i][ind-1] = 1;
}
break;
default:
break;
}
}
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(map[i][j] == 0) {
cnt++;
}
}
}
printf("%d", cnt);
return 0;
}
P2100 考试座位号
问题描述
解决方法
P2101 一帮一
问题描述
解决方法
P1325 区间合并
问题描述
解决方法
P2045 数字蚯蚓
问题描述
解决方法
第三期未完结
看完了点个赞再走嘛
标签:int,text,scanf,++,sln,ans,第三期,order,LevOJ From: https://www.cnblogs.com/churk/p/18538401