2017.11.16考試總結題解
一、恐怖服裝
題目簡述:農夫有一件長為s的恐怖服裝,同時他又有
n(2 <= n <= 20,000)
頭奶牛,第i頭奶牛的長度為
li。且恐怖服裝最多只能容納兩頭奶牛。他想要他的其中兩頭奶牛穿上恐怖服裝,問共有幾種滿足?
分析:根據題意可知,如果是純粹的雙重迴圈判斷,肯定會超時。那麼我們就得進行適當的剪紙來減少迴圈,這時就用到了排序(從小到大),如果外迴圈與內迴圈相加的和大於s,那麼就內退出迴圈,因為如果當前較小的奶牛長度加上外迴圈的奶牛長度都長於
s,那麼接下來就肯定大於了,就不用浪費時間了(當時居然崩了,可看出我的多麼不細心,不過我會努力改正的!
那麼**如下:
#include
using namespace std;
int main()
cout<
return 0;
}二、密碼鎖
題目簡述:農夫的奶牛一直從他的農場逃離並且導致了鉅額損失。
為了阻止它們逃離,他找來了乙隻神奇的鎖來阻止他的奶牛開啟柵欄門。
這個鎖有三個密碼子,每個都是從1-n的整數(1<=n<=100),1和n是相鄰的,因為這些密碼子是乙個圈。有兩組密碼能夠開啟這個鎖,乙個是農夫的,另乙個是鎖匠的。然而,這個鎖有乙個小的容錯的機率,它會開啟只要表盤上的數字位置與任意乙個密碼上的相應數字位置相差不超過2。比如,如果農夫的密碼是(1,2,3),鎖匠的密碼是(4,5,6)。如果你的輸入是(1,n,5)(因為這和農夫的密碼很相近)或者是(2,4,8)(因為這和鎖匠的密碼很接近),這個鎖都會開啟。注意,(1,5,6)無法開啟這個鎖,因為它和任何乙個密碼都不接近。
分析:這題是有乙個坑的,因為鎖是呈環狀排列,所以n和1也是相鄰的。首先,我們知道可能性一共就250(想想,為什麼),那麼我們就得迴圈判斷它們每個位置對應的差是否相差二,如果是,就不管;不然種數減一。
那麼**如下:
#include
using namespace std;
int main()
cout<
return 0;
}三、採蘑菇的拖拉機
題目簡述:
農夫的農場被分為了乙個平面座標系,最左下角的座標為(1,1),最右上角的座標為(
10^5,10^5).
農夫有乙個探測蘑菇的雷達,當開啟蘑菇雷達後,這個雷達每一秒會發現農場上的乙個蘑菇,並且會告知這個蘑菇的座標。
農夫的奶牛只會沿著乙個方向開拖拉機,並且不會拐彎,這裡的方向指的是和座標軸平行的四個方向和與座標軸夾角45度的對角線(當然是兩條對角線)。並且每天朱昶成只允許奶牛開一次拖拉機,也就是說,每次採蘑菇,拖拉機只能沿著乙個方向去採集所經過的點的蘑菇。
農夫允許他的奶牛從農場裡的任意乙個點,任意乙個方向出發,並且他的拖拉機的速度奇快,從啟動到完成任務話費的時間忽略不計。現在朱昶成想直到,如果要一次性的採集k個蘑菇,最早在什麼時間完成任務。
分析:這道題其實不難看出是一道典型的八皇后變形版。把把上下左右以及左右下角的對角線的行列數規律弄清楚後,就不難做出這題。規律為:上下同列就是列數相等;左右同行就是行數相等;左對角線相等就是行列和相等;右對角線相等就是差相等。那麼了解這些規律後這道題就變成了很簡單的一題相加判斷題。
具體**如下:
#include
using namespace std;
int main(),b[100001]={},c[100001]={},d[100001]={},n,x,y,k;//a為左右相等(記錄行的蘑菇個數),b就為上下相等(記錄列的蘑菇個數),c陣列就位右對角線相等(記錄右對角線的蘑菇個數),d陣列為左對角線相等(記錄左對角線的蘑菇個數)
bool f=1,f1=1;//f為記錄是否採到了蘑菇,f1的作用下面會將
cin>>n>>k;
for (int i=1;i<=n;i++)
}if (f)cout<
-1f=1;f1=1;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));//清空陣列
cin>>n>>k;
for (int i=1;i<=n;i++)
}if(f)cout<
想把乙個普通的英語單詞轉換成牛語很簡單.如果乙個單詞的以乙個母音字母('a','e','i','o','u)開頭,那麼只需在 這個單詞的結尾加上"cow".例如,"udder"需要變成"uddercow"; 如果乙個單詞的第乙個字母不是母音字母,那麼只需把這個單詞的第乙個字母放到單詞結尾,然後再在結尾加上"ow".例如 "farmer"需要變成"armerfow". 所以"the cows escape at dawn"就會變成"hetow owscow escapecow atcow awndow."你需要將n (1 ≤ n ≤ 100)個英語單詞翻譯成牛語,單詞長度在3到40之間.。
分析:這道題其實也沒什麼可以講,純模擬就行,模擬的題目最重要的其實就是多看**以及多打**。
那麼**如下:
#include
using namespace std;
string s1,s2;
int lena,lenb;
void change()//接下來就不用條件判斷了,因為如果滿足條件就會跳出迴圈
for (int i=1;i<=s1.size()-1;i++) s2=s2+s1[i];//將前面的字母加上
s2=s2+s1[0]+"ow";//加上最後的字母在補乙個ow
}int main()
return 0;
}//這道字串其實算水題了吧
結束心得:在考試時不能慌張,仔細地分析題目、解剖題目、了解題目、在與題目融為一體,這樣你就會對題目有無限的思路,會發現某些題目其實也沒那麼難,只要你靜得下心,就能夠做到!!(心得十分重要!
心得十分重要!
心得十分重要!
重要的事說三遍
)
2017 11 16 外包單報價
你的月薪 22天 8小時 私單預估時間 2倍 1.logo設計 5 草圖,原始檔,4套應用模板,3次修改 初級 1000 2000 中級 2000 5000 高階 5000 15000 2.vi 視覺識別系統 設計 logo方案,表示規範20頁,各類場景應用效果30頁 初級 5000 10000 中...
2017 11 16 shell指令碼 (二)
管道符 管道符左邊命令的輸出就作為管道符右邊命令的輸入 root node69 test cat 1.txt wc l 1 作業控制 ctrl z 暫停乙個作業 root node69 test vim 1.txt 1 已停止 vim 1.txt root node69 test fg vim 1....
考試總結 CQOI2017 考試總結
再奮鬥一年,爭取ak noip2016 cqoi2017 這是去年我立的flag。看考場,電腦挺快,而且配置和評測機一樣,可以放心的在自己的電腦上卡常測試啦,好評。碼了一道fft的題,沒網只好拷著回家交,鍵盤蜜汁小,enter佔據了兩行,旁邊還有關機按鈕。座位安排奧妙重重,和巴蜀dyf大神坐在一起。...