shen_tian_hao的C++快快编程AC代码库(每周更新)
1.A+B Problem
#include<iostream> using namespace std; int main(){int a,b,c;cin>>a>>b;c=a+b;cout<<c<<endl;return 0; }2.刪除最大和最小
#include<iostream> using namespace std; int main(){int n[100],x;int b,s;cin>>x;for(int i=0;i<x;i++)cin>>n[i];b=s=n[0];for(int i=0;i<x;i++){if(b<n[i])b=n[i];if(s>n[i])s=n[i];}for(int i=0;i<x;i++)if(n[i]!=b&&n[i]!=s)cout<<n[i]<<" ";return 0; }3.lester大帥哥
#include<iostream> using namespace std; int main() {cout<<"lester大帥哥";return 0; }4.三連擊
#include<bits/stdc++.h> using namespace std; int main(){cout<<"192 384 576"<<endl; cout<<"219 438 657"<<endl; cout<<"273 546 819"<<endl; cout<<"327 654 981"<<endl;return 0; }6.病毒擴散
#include<iostream> using namespace std; char a[7][7]; int main(){for(int i=1;i<=5;i++)for(int j=1;j<=5;j++)cin>>a[i][j];for(int i=1;i<=5;i++)for(int j=1;j<=5;j++)if(a[i][j]=='A'){if(i-1>=1&&a[i-1][j]!='A') a[i-1][j]='a';if(i+1<=5&&a[i+1][j]!='A') a[i+1][j]='a';if(j-1>=1&&a[i][j-1]!='A') a[i][j-1]='a';if(j+1<=5&&a[i][j+1]!='A') a[i][j+1]='a';}for(int i=1;i<=5;i++)for(int j=1;j<=5;j++)if(a[i][j]=='a')a[i][j]='A';cout<<endl;for(int i=1;i<=5;i++){for(int j=1;j<=5;j++)cout<<a[i][j];cout<<endl;}return 0; }9.一個菱形
#include<iostream> using namespace std; int main() {cout<<" *"<<endl;cout<<" ***"<<endl;cout<<" *****"<<endl;cout<<"*******"<<endl;cout<<" *****"<<endl;cout<<" ***"<<endl;cout<<" *"<<endl;return 0; }10.ASCII碼破密
#include<iostream> using namespace std; int main(){cout<<char(67);cout<<char(43);cout<<char(43);cout<<char(32);cout<<char(114);cout<<char(117);cout<<char(110);cout<<char(115);cout<<char(32);cout<<char(102);cout<<char(97);cout<<char(115);cout<<char(116);return 0; }11. A+B
#include<iostream> using namespace std; int main(){int a,b,c;cin>>a>>b;c=a+b;cout<<c<<endl;return 0; }12. 長方體體積
#include<iostream> #include<iomanip> using namespace std; int main() {double a,b,h;cin>>a>>b>>h;cout<<fixed<<setprecision(2)<<a*b*h<<endl;return 0; }14.打折
#include<iostream> using namespace std; int main() {double a;cin>>a;if (a>=1&&a<50)cout<<a*10;else if (a>=50&&a<100) cout<<a*8;else cout<<a*7;return 0; }16. 最大值
#include<iostream> using namespace std; int main(){int a,b,c;cin>>a>>b>>c;if(a>=b&&a>=c)cout<<a;else if(b>=a&&b>=c)cout<<b;elsecout<<c; return 0; }18.三角形判定
#include<iostream> using namespace std; int main() {int a,b,c;cin>>a>>b>>c;if(a<b+c&&b<a+c&&c<a+b)cout<<"Yes";elsecout<<"No"; return 0; }20.菱形變形
#include<iostream> using namespace std; int main(){int n;cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=n-i;j++)cout<<" ";for(int k=n-i+1;k<=(n-i+1)+(2*i-1)-1;k++)cout<<"*";cout<<endl; }for(int i=1;i<=n-1;i++){for(int j=1;j<=i;j++)cout<<" ";for(int k=i+1;k<=(i+1)+2*(n-i)-2;k++)cout<<"*";cout<<endl; }return 0; }21. FizzBuzz
#include<iostream> using namespace std; int main(){int n;cin>>n;for(int i=1;i<=n&&i>0;i++)if(i%5==0&&i%3==0)cout<<"FizzBuzz ";else if(i%3==0)cout<<"Fizz ";else if(i%5==0)cout<<"Buzz ";elsecout<<i<<" ";return 0; }22. 質數生成
#include<iostream> using namespace std; bool isPrime(int x) {if(x<=1)return 0;for(int i=2;i*i<=x;i++) if(x%i==0)return 0;return 1; } int main(){int n;cin>>n;for(int p=2;p<=n;p++){if(isPrime(p))cout<<p<<" ";}return 0; }23. 括號匹配
#include<iostream> #include<string> using namespace std; int top=0; string f; int main(){getline(cin,f);bool match=1;for(int i=0;i<f.size();i++){if(f[i]=='(')++top;else if(f[i]==')'){if(top==0){match=0;break;}top--;}}if(top>0)match=0;if(match)cout<<"YES"<<endl;else cout<<"NO"<<endl;return 0; }51.接水問題
#include<cstdio> #include<iostream> using namespace std; int w[10010];int lastw[10010]; int main(){freopen("water.in","r",stdin);freopen("water.out","w",stdout);int n, m;int time = 0;scanf("%d%d",&n,&m);for (int i=1; i<=n; i++) scanf("%d",&w[i]);for (int i=1; i<=m; i++) lastw[i] = w[i];int i = m + 1;while (i <= n){int time_min = (1<<31)-1;for (int j=1; j<=m; j++) time_min = min(time_min,lastw[j]);time += time_min;for (int j=1; j<=m; j++){lastw[j] -= time_min;if (lastw[j] == 0){lastw[j] = w[i];i++;}}}int time_min = 0;for (int i=1; i<=m; i++) time_min = max(time_min,lastw[i]);time+=time_min;printf("%d\n",time);return 0; }最后向大家展示一下小編做題的方法技巧:
二分法基本步驟:
 1.判定二分法 通過關鍵變量或特定循環結構
 2.分析結構 上下界初始化,判定函數,上下界更新,根據結構層次答題
 3.驗證答案 驗證輸出結果是否正確
 4.易錯分析 死循環判斷,+1/-1問題,<=>問題(注意:死循環是最經常遇到的錯誤!死循環標志:存在一種輸入,使得循環上下界更新前后沒有變化)
回溯法基本步驟:
 1.設置初始化的方案(給變量賦初值,讀入已知數據等)
 2.找到正確答案,跳轉至5; 否則繼續
 3.枚舉當前步驟的合法方案,枚舉完跳轉至5, 否則繼續
 4.儲存當前步驟中間結果,前進一步枚舉,跳轉回2
 5.退回一步(回溯),消除當前步驟中間結果,未結束則跳轉回2
 6.退回到頭則結束
分治法基本步驟:
 1.原問題:在第1~1000000個數中找第n大數
 2.隨機一個數組中一個數,將比它小的放左邊,大的放右邊
 3.假設該數在第i位:如果i==n,找到結果;如果i<n, 在第i+1~1000000中找結果;如果i>n, 在第1~i-1中找結果
 4.轉化后的問題,結構相同,規模更小
完善程序基本步驟:
 1.仔細讀題,尤其是題目給你的解題思路:解決什么問題?用的什么算法?輸入輸出是什么?……
 2.理解變量的含義,也可通過變量單詞的意思知道
 3.在充分了解前兩點的基礎上,先根據自己的想法大致思考:如果讓你實現程序,你會怎么寫
 4.通讀程序,理順程序結構。千萬不要因為程序很長而覺得氣餒,有時程序越長,填空反而越簡單。
 5.按照程序執行的順序答題,遇到難的先放一邊,繼續往下做。有些空格很簡單,可以直接填寫
 6.到這步為止,程序大概意圖就知道了,然后就是填比較難的幾格了。這一點就靠你對程序的理解了
 7.填完了以后,執行一遍程序以驗證,有樣例就結合樣例,沒樣例就自己造數據模擬
完善程序解題技巧:
 1.變量初始化 這個得結合后面的運算確定,不過有些也很簡單,如sum=0之類的
 2.for循環初值、終值如果是嵌套的循環,可結合父循環或子循環確定
 3.更新最優解:比較或賦值
 4.要填的空格與某句對應,這樣的例子在之前的課程能找到很多
如果對小編的程序有任何疑問,歡迎在下方留言!下周見~
總結
以上是生活随笔為你收集整理的shen_tian_hao的C++快快编程AC代码库(每周更新)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: RuntimeError: No suc
- 下一篇: 杂事记诗-- 读网文《穷鬼的上下两千年》
