a - magic wall
題意:給乙個n*m的矩陣,-1不用管,其他數都是0到9,告訴你每個數從i變成j花費多少,問把非1的數全換成1最小花費多少。
在花費矩陣上暴力跑floyd,然後加起來。
#include
#include
#include
#include
using
namespace
std;
const
int inf=1005;
int e[100][100],h,w,x,ans;
int main()
}for(int k=0;k<=9;k++)
for(int i=0;i<=9;i++)
for(int j=0;j<=9;j++)
if(e[i][k]e[i][k]+e[k][j])
e[i][j]=e[i][k]+e[k][j];
for(int i=1;i<=h;i++)
}printf("%d",ans);
return
0;}
b - a weird buggy robot
題意:給乙個迷宮,從s走到e,『.』可以走,『#』不可以走,給你一串由0123表示的指令,問你有多少種0123分別表示上下左右的方式可以完成。
猛一看是個爆搜,但既然給你了走法,說明只需要判斷一下每種走法能不能完成即可,每種走法用stl中的next_permutation()函式遍歷0123的所有排列,然後遞迴判斷走法可不可行。講道理要不是打過這場cf這道題我真不一定做得出來。。。
#include
#include
#include
#include
using
namespace
std;
int ans,sx,sy,ex,ey,n,m;
char s[110][110],p[110];
bool check(int x,int y,int num)
if(p[num]=='1')
if(p[num]=='2')
if(p[num]=='3')
}int main()
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
}scanf("%s",p);
char p1[110];
strcpy(p1,p);
char t[5]="0123";
do
if(check(sx,sy,0)) ans++;
}while(next_permutation(t,t+4));
printf("%d\n",ans);
return
0;}
c - fun equation
題意:給定n,要你給出滿足4⁄n=1⁄h+1⁄n+1⁄w的h,n,k,保證存在乙個h,n,k<=3500的方案。
這應該是最水的一道題,暴力1..3500迴圈h和n,然後k=(n*i*j)/(4*i*j-n*i-n*j)即可。看了學長的題解,n是偶數時可以優化,可以令h=n,n=n,k=n/2。還有。。。記得要用long long。
#include
#include
#include
#include
#define ll long long
using namespace std;
int n;
int main()}}
return
0;}
d - matrix game
題意:給乙個01矩陣,從每列第乙個1(含第乙個)開始數min(k, n - i + 1)個元素,其中的1加起來,可以把任意多個1變成0,問最多得分,和得到這個得分的最少替換數。
這個題主要考讀題啊。。。看懂規則就逐列找1暴力就行,類似尺取法,有個記錄上次的1的位置,若這次更大就更新,然後把這個位置前面的1都刪了。
#include
#include
#include
#include
using namespace std;
int n,m,k,a[110][110],ans1,ans2;
int main()
}for(int i=1;i<=m;i++)
if(t>now)}}
t=0;
for(int j=1;jif(a[j][i]==1) t++;
ans1+=now;
ans2+=t;
}printf("%d
%d",ans1,ans2);
return
0;}
e - online judgers
題意:先給n個字串,再給n個字串,問兩個裡相同的有多少。
嗯,用map一秒過,但是是多組輸入,這題目坑死算了。。。
#include
#include
#include
#include
#include
#include
using
namespace
std;
map s;
string p;
int n,ans;
int main()
for(int i=1;i<=n;i++)
}printf("%d\n",ans);
}return
0;}
f - one in another
題意:給n個不同大小的盒子,把小的放到大的裡面,問最後最少剩幾個。
就暴力貪心,排個序基本就完了。
#include
#include
#include
#include
#include
using
namespace
std;
int n,ans,a[5010];
int main()
sort(a+1,a+1+n);
int j=0;
while(j!=n)
}ans++;
}printf("%d",ans);
return
0;}
g - guess numbers
題意:猜數遊戲,不同的是你給數,系統給》=或者<,每次都合法就可。數在1..10^6之間。
第一次做互動題,還是很有趣的一種題的,這個明白意思就知道可以二分了,10^6還不到2^25,所以穩夠,每次都根據符號判斷二分即可,重在了解新題型。
#include
#include
#include
#include
#include
#include
using
namespace
std;
char s[4];
int main()
if(s[0]=='<')
}printf("! %d\n",l);
fflush(stdout);
return
0;}
常州大學新生寒假訓練會試 (E,G,H)
中午忘了這個比賽,晚了兩個小時才打的,a了8題,感覺g題還不錯,g題是隊裡的taylorli大佬用taylor公式做出來的,orz。e題說是數學題,只能說是個高中數學題,h題明明按題意做就行不知為什麼大家都wa,可能卡到了什麼細節。e 這是乙個數學題 解析 對公式兩邊的階乘化簡的到公式 ai a0 ...
常州大學新生寒假訓練會試 A 新增逗號
對於乙個較大的整數 n 1 n 2,000,000,000 比如 980364535,我們常常需要一位一位數這個數字是幾位數,但是如果在這 個數字每三位加乙個逗號,它會變得更加易於朗讀。因此,這個數字加上逗號成如下的模樣 980,364,535請寫乙個程式幫她完成這件事情 一行乙個整數 n一行乙個字...
常州大學新生寒假訓練會試 H 酸鹼滴定 精度
有時候你會抱怨,什麼時候才能到終點。有時候你會迫不及待,怎麼顏色還不改變。滴定管長場的,我們的路長長的。用心的放入每一滴,終點就在你手心。今天小星需要去完成乙個酸鹼滴定實驗。實驗室老師要求用 a mol l 的hcl去測定一瓶naoh的濃度。首先小星取出了乙個錐形瓶,在裡面放入的bml的naoh,並...