SDUT 2012春季ACM內部測試賽5

2022-05-24 02:42:10 字數 3050 閱讀 2440

a題:(字串問題)就是給定字典。然後查詢錯誤。分三種情況

letterletterletterketter)

letterlettre)

然後判斷。。之前做過類似的一道題目,1y..比賽時,隊長負責的題目,也是果斷1y..厲害。

view code

#include 

#include

#include

#include

#define maxn 10007

using

namespace std;

char str[maxn][107];

bool isok(char *s1,char *s2)

;char h2[107] = ;

//相等時

if (len1 == len2)

}if (l == 1)//

寫錯乙個字母

return

true;

else

if (l == 2)//

兩個字母互換了位置

else

return

false;}//

len2

else

if (len1 == len2 + 1)

i++;

while (i < len1 && j if (s1[i] != s2[j])

return

false;

i++; j++;

}return

true;}//

多寫字母了

else

if (len1 + 1 == len2)

j++;

while (i < len1 && j if (s1[i] != s2[j])

return

false;

i++; j++;

}return

true;

}return

false;

}int main()

}if (flag)

//是否是拼寫錯誤

for (i = 0; i < n; ++i)}//

否則if (!flag)

}return

0;}

f:果斷的奇葩資料啊。。。。。。自己用hash掛鏈處理的雜湊衝突。。。才開始使用的動態new開的記憶體。果斷tle最後換成靜態分配記憶體之後就a了。。。。

view code

#include 

#include

#include

#include

#define maxn 1000007

using

namespace std;

struct node

*p[maxn];

node h[maxn];

int pos;

int n,ct,a,b;

bool isok(int x,int y)}//

puts("dddd");

if (!flag)

return

true;

}int main()

printf("

%d\n

",n - ct);}//

int e = clock();

//printf(">>%d\n",e-s);

return

0;}

g: 這是我負責的一道題目,乙個簡單的貪心,我先是按+ - 數排序一下,同號的按序號從小到大排序,因為這樣可以盡量讓距離比較近的先進行交易。。開始沒注意到long long 的提示果斷的wa了一次。。後來von提醒了我一下才發現,改過了就a了。。

view code

#include 

#include

#include

#include

#define maxn 1000007

using

namespace std;

struct node

p[maxn];

int n;

int cmp(node a,node b)

else

return a.val < b.val;

}int main()

sort(p,p + n,cmp);//

排序for (i = 0; i < n; ++i)

}i = 0; j = pos;//

從大於0的開始進行交易

long

long ct = 0;

while (i < pos && j < n)

else

if (tmp == 0)

else

if (tmp < 0)

}printf("

%i64d\n

",ct);

}return

0;}

f:本來該我負責的,可是我在g題上磨嘰了很長時間,von就給做了。。。這道題好像是隨機演算法的問題,看了下隨機演算法做的可是做了之後是wa無語了。最後是分別判斷沒哥四邊形,只要存在兩個對角線和不相等。。肯定not homogeneous。。。

view code

#include 

#include

#include

#include

#define maxn 1007

using

namespace std;

int a[maxn][maxn];

int main()

}for (i = 0; i < n - 1; ++i)

}if (flag) break;

}if (flag) printf("

not homogeneous\n

");else printf("

homogeneous\n

");}

return0;}

2012春季ACM內部測試賽3

a 題意是給定乙個n m的矩形,初始顏色都為0 代表一種顏色 然後給你乙個r c的矩形刷子可以講r c內部的顏色0或者是1變為相反色 注意一共有0,1兩種顏色,他倆互為相反色 對於每乙個出現的1,可定會至少被刷過一次,我們只要很據目標矩陣統計,遇到1是時就將r c的大小的矩陣進行翻轉,如果出現i r...

SDUT 2012省賽選拔賽1

a bfs 優先佇列。第一天只能感染defence小於等於1的並且與之連線的機器,第二天只能感染defence小於等於2的並且與之連線的機器.依次往後推。include include include include define maxn 505 using namespace std int g...

SDUT 2012省賽選拔賽3

1001 將乙個數轉化成 2進製的數,同樣對這個數模 2倒取於,分清正數與負數,兩種不同的情況 1002 dfs 給的資料很小所以暴力就可以過,首先求出n個字串的全排列,然後檢查是否可以連線,求最後的長度,列舉出最小的值。在這裡又犯了個不可原諒的小錯誤。唉。細心。1003 字典樹 每個點減去空格的a...