在小型網(wǎng)站建設(shè)小組廣州疫情升級
?
1001-四舍五入_??透傎愓Z法入門班數(shù)組模擬、枚舉、貪心習(xí)題 (nowcoder.com)
題目描述
四舍五入是個好東西。比如你只考了45分,四舍五入后你是50分再四舍五入你就是滿分啦!qdgg剛考完拓?fù)?。成績十分不理想。但老師覺得他每天都很認(rèn)真的聽課很不容易。于是決定給他一個提高成績的機(jī)會:讓他的成績可以在小數(shù)點后的任意位置四舍五入(也可以四舍五入為最接近的整數(shù))。
但是這是有限制的。qdgg只能四舍五入t次。請幫助qdgg找到他在不超過t次四舍五入可獲得的最高成績。請注意,他可以選擇不使用全部t次機(jī)會。此外,他甚至可以選擇完全不對成績進(jìn)行四舍五入。
在這個問題中,使用經(jīng)典的舍入規(guī)則:將數(shù)字四舍五入到第n個數(shù)字時,必須先看一下數(shù)字n + 1,如果小于5,則第n個數(shù)字將保持不變,而所有后續(xù)數(shù)字替換為0。否則,如果n + 1位數(shù)大于或等于5,則位置n處的位數(shù)將增加1(如果此位數(shù)等于9,這也可能會更改其他一些位數(shù)),并且隨后的所有位數(shù)數(shù)字將替換為0。最后,所有尾隨的零將被丟棄。
例如,如果將數(shù)字1.14舍入到小數(shù)點后第一位,則結(jié)果為1.1,而如果將1.5舍入到最接近的整數(shù),則結(jié)果為2。四舍五入到小數(shù)點后第五位的數(shù)字1.299996121將得出數(shù)字1.3。輸入描述:
輸入的第一行包含兩個整數(shù)n和t表示小數(shù)(含小數(shù)點)的長度以及四舍五入的次數(shù)。第二行為一個字符串表示qdgg的初始分?jǐn)?shù)。輸出描述:
一行表示qdgg能得到的最高分?jǐn)?shù)(請勿輸出尾零)
1012-方塊與收納盒_牛客競賽語法入門班數(shù)組模擬、枚舉、貪心習(xí)題 (nowcoder.com)
?現(xiàn)在有一個大小n*1的收納盒,我們手里有無數(shù)個大小為1*1和2*1的小方塊,我們需要用這些方塊填滿收納盒,請問我們有多少種不同的方法填滿這個收納盒
輸入描述:
第一行是樣例數(shù)T 第2到2+T-1行每行有一個整數(shù)n(n<=80),描述每個樣例中的n。輸出描述:
對于每個樣例輸出對應(yīng)的方法數(shù)
#include <iostream>
using namespace std;long long a[90];int main()
{a[0] = 1;a[1] = 1;int n;cin >> n;for(int i = 2;i <= 80;i ++){a[i] = a[i-1] + a[i-2];}while(n --){int x;cin >> x;cout << a[x] << endl;}
}
時間(time) (nowcoder.com)
題目描述
? ? ? ? ?Apojacsleam是一個喜歡特殊時刻的人。
? ? ? ??他定義了一個時刻,若電子表顯示ab:ba(24小時制),則該時刻為“回文時刻”(可以有前導(dǎo)零)。例如00:00就是回文時刻。
? ? ? ? 給定一個時刻,求此時刻的上一個和下一個回文時刻。
J題附加:00:00就是24:00,沒有24:00這一時刻
J題附加:輸入可能有前導(dǎo)0,輸出不含前導(dǎo)0,例如10:1的意思是10:01,而10:10的輸出為10:10?
輸入描述:
兩個正整數(shù),用“:”隔開,表示小時和分鐘,保證輸入時間合法。輸出描述:
兩行,兩個時刻(不含前導(dǎo)0),用“:”隔開,表示上一個時刻和下一個時刻
#include <cstdio>using namespace std;int main() {int a, b, A, B;scanf("%d:%d", &a, &b);A = a, B = b;while (true) {b--; //找之前的時間if (b < 0) //回到上個小時a--;b = (b + 60) % 60; //防止負(fù)數(shù)a = (a + 24) % 24;if (a % 10 == b / 10 && b % 10 == a / 10) {//回文printf("%d:%d\n", a, b);break;}}while (true) {B++; //找之后的時間if (B == 60) //去到下個小時A++;B = (B + 60) % 60;A = (A + 24) % 24;if (A % 10 == B / 10 && B % 10 == A / 10) {printf("%d:%d\n", A, B);break;}}return 0;
}
?「水」滔天巨浪 (nowcoder.com)
這個題沒有要求輸出前導(dǎo)0,如果要輸出前導(dǎo)0,可以用%02d(寬度為2,左端補(bǔ)0)?
題目描述
帕秋莉掌握了一種水屬性魔法
在此之前,她已經(jīng)忍了霧之湖上的妖精們很久了
現(xiàn)在,她決定反擊!
霧之湖上有n只妖精排成一列,每只妖精的飛行高度嚴(yán)格單調(diào)遞增,且高度1≤x≤1000
帕秋莉能清除掉列里面一個連續(xù)子區(qū)間的妖精,當(dāng)且僅當(dāng)它們被清理之后,帕秋莉仍然能還原出這個子區(qū)間的所有妖精的飛行高度
如,若妖精們飛行高度為1,3,4,5,6,8,那么可以清理飛行高度為4,5的兩只妖精,因為清理之后,這兩個空位之間的數(shù)據(jù)是唯一確定的
帕秋莉一次最多選擇清除一個連續(xù)子區(qū)間,請問帕秋莉一次最多能清除多少妖精呢?
輸入描述:
第一行一個整數(shù)n,表示有n只妖精下一行n個數(shù)ai,表示每只妖精飛行高度輸出描述:
輸出一行,一個整數(shù)表示答案
#include<iostream>
using namespace std;
const int N=1010;
int a[N];
int main()
{int n,max1=0,b=0;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);a[n+1]=1001;for(int i=1;i<=n;i++){int j=0;while(a[i]+1==a[i+1]&&a[i]-a[i-1]==1)//雙指針?biāo)惴? { //這里要用while 而不是ifj++;i++;}max1=max(max1,j);//取最大值}printf("%d",max1);return 0;
}
Problem - 1777A - Codeforces
cf的題就是妙,有的不能按它的字面意思來寫
如果這樣寫,會爆掉?
因為a[i+1]*=a[i]不合適
#include<iostream>
using namespace std;
const long long N=100010;
long long a[N];
int main(){long long t;cin>>t;while(t--){long long n,num=0;cin>>n;for(long long i=0;i<n;i++){cin>>a[i];}for(long long i=0;i<n-1;i++){if(a[i]%2==0&&a[i+1]%2==0||a[i]%2==1&&a[i+1]%2==1){num++;a[i+1]*=a[i];}}cout<<num<<endl;}
}
?正確解法
#include<iostream>
using namespace std;
const long long N=100010;
long long a[N];
int main(){long long t;cin>>t;while(t--){long long n,num=0;cin>>n;for(long long i=0;i<n;i++){cin>>a[i];}for(long long i=0;i<n-1;i++){if(a[i]%2==0&&a[i+1]%2==0||a[i]%2==1&&a[i+1]%2==1){num++;//a[i+1]*=a[i];}}cout<<num<<endl;}
}
Code over!