当前位置: 首页 > news >正文

松滋网站开发网站开发分析

松滋网站开发,网站开发分析,北京工程设计公司排名,小程序appid如何获取说明#xff1a; 有几个题是不会讲的#xff0c;我只能保证大家拿保底分。 题目列表#xff1a; 问题 A: 求平均数1 思路#xff1a; 送分题…… 参考题解#xff1a; #include iostream #include iomanip using std::cin; using std::cout;int main(…说明 有几个题是不会讲的我只能保证大家拿保底分。 题目列表 问题 A: 求平均数1  思路 送分题…… 参考题解 #include iostream #include iomanip using std::cin; using std::cout;int main(){cin.tie(nullptr)-sync_with_stdio(false);double avg 0;int tmp,cnt 0;while(cin tmp){avgtmp,cnt;}cout std::fixed std::setprecision(2) avg/cnt std::endl;return 0; } 问题 B: 粘墙三角形  思路 题目说26那就很简单了写个二重循环秒了。 参考题解 #include iostream using std::cin; using std::cout;int main(){cin.tie(nullptr)-sync_with_stdio(false);int n;while(cin n){for(int i 1;in;i){cout a;for(int j 1;jn-i;j) cout ;for(int j 1;ji;j) cout char(aj-1);cout \n;}cout \n;}return 0; } 问题 C: 门帘设计 思路 注意这里的输出中间都是有空格的。门帘的上面是对2取模为1的输出字符否则输出空格门帘的下面是对4取模为1的输出字符否则输出空格。 参考题解 #include iostream using std::cin; using std::cout;int main(){cin.tie(nullptr)-sync_with_stdio(false);char c;int a,b;while(cin c a b){for(int i 1;ia;i){if(ib){for(int j 1;j29;j){if(j1) cout c;else cout ;}}else{for(int j 1;j29;j){if(j%41) cout c;else cout ;}}cout \n;}cout \n;}return 0; } 问题 D: 倒置排序  思路 求一下倒置后的数字都放进一个pair或者结构体中排序后输出即可。 参考题解 #include iostream #include vector #include algorithm using std::cin; using std::cout; using std::vector; int main(){cin.tie(nullptr)-sync_with_stdio(false);constexpr int N 1e25;int _ 1;cin _;auto solve [](){int n;cin n;vectorstd::pairint,int ans(N1);for(int i 1;in;i){int tmp;cin tmp;ans[i].second tmp;int rev 0;while(tmp){rev rev*10tmp%10;tmp/10;}ans[i].first rev;}std::sort(ans.begin()1,ans.begin()1n);for(int i 1;in;i) cout ans[i].second \n[in];};while(_--) solve();return 0; } 问题 E: 按日期排序  思路         这题是为数不多用C的输入输出流不好读入的情况那就用scanf和printf来实现输入输出一个日期是一个结构体在结构体内重载一下小于号然后sort()一遍输出即可。 参考题解 #include iostream #include cstdio #include vector #include algorithm using std::vector; int main(){struct node{int m,d,y;bool operator (const node W) const {if(y!W.y) return yW.y;else if(m!W.m) return mW.m;else return dW.d;}};vectornode ans;int month,day,year;while(~scanf(%d/%d/%d,month,day,year)){ans.push_back({month,day,year});}std::sort(ans.begin(),ans.end());for(auto t:ans){printf(%02d/%02d/%04d\n,t.m,t.d,t.y);}return 0; } 问题 F: 统计图 思路 这个题也要注意输出的时候每两个字符之间都是有空格的之前没发现WA了一次。具体思路是使用getline()或者gets()整行整行读使用map对所有的大写字母进行计数还需要统计这其中字符出现的最多的次数用于判断输出的行数记为maxn每行遍历时对应判断该行的行数行数是从maxn到1的是否小于等于该字母出现的次数。 参考题解 #include iostream #include string #include map #include algorithm using std::cin; using std::cout; using std::string; using std::map; int main(){cin.tie(nullptr)-sync_with_stdio(false);string line;mapchar,int mp;while(getline(cin,line)){for(auto c:line){if(cAcZ) mp[c];}}int maxn -1;for(auto i:mp) maxn std::max(maxn,i.second);for(int i maxn;i1;i--){for(int j 1;j51;j){if(j1){if(imp[A(j1)/2-1]) cout *;else cout ;}else{cout ;}}cout \n;}for(int i 1;i51;i){if(i1){cout char(A(i1)/2-1);}else{cout ;}}cout \n;return 0; } 问题 G: 找子串 思路 使用string的find()库函数即可。 参考题解 #include iostream #include string using std::cin; using std::cout; using std::string; int main(){cin.tie(nullptr)-sync_with_stdio(false);string s,t;while(cin s t){cout (s.find(t)string::npos?No\n:Yes\n);}return 0; } 问题 H: 火星数排序  思路 注意看清题目读入的是火星数要我们排序后输出排序后的火星数。具体思路就是读入火星数然后转换成地球数进行排序以地球数为第一关键字输出最终的结果即可。储存这些两个数可以分别用两个数组或者是一个结构体数组也可以是一个pair数组。 参考题解 #include iostream #include string #include vector #include map #include algorithm using std::cin; using std::cout; using std::string; using std::vector; using std::map; int main(){cin.tie(nullptr)-sync_with_stdio(false);mapint,int mp {{0,0},{8,1},{1,2},{5,3},{2,4},{3,5},{9,6},{4,7},{7,8},{6,9}};int _ 1;cin _;auto solve [](){int n;cin n;vectorstd::pairint,int a;for(int i 0;in;i){int Mars;cin Mars;int tmp Mars;vectorint v;while(tmp){v.emplace_back(tmp%10);tmp/10;}int earth 0;std::reverse(v.begin(),v.end());for(auto j:v){earth earth*10 mp[j];}a.emplace_back(earth,Mars);}std::sort(a.begin(),a.end());for(int i 0;ia.size();i){cout a[i].second ;}cout \n;};while(_--) solve();return 0; } 问题 I: 字串数  思路 推出公式ans (sum!)/(a1!*a2!*...*an!)。其中sum表示数组a的和。因为数据会非常大使用C写的话会爆long long那要写高精度。如果图方便的话就直接用Java的大整数类来写了。当然python也能写只不过ZISUOJ平台的python解释器有点问题有数据读入的情况就会出错。 参考题解1C高精度实现 #include bits/stdc.h using namespace std; using ll long long; vectorint div(vectorint A,ll b){//高精度除法 (高精度数 除以 非高精度数)ll r 0;vectorint C;for (int i A.size()-1; i0;i--){r r * 10 A[i];C.push_back(r / b);r % b;}reverse(C.begin(),C.end());while (C.size()1C.back()0) C.pop_back();//去除高位零return C; } vectorint mult1(int sum){//高精度阶乘vectorint C;C.push_back(1);int i, j, temp 0;int item 0;for(i 2; i sum; i){for (j 0; j C.size(); j) {item C[j] * i temp;C[j] item % 10;temp item / 10;}while(temp){C.push_back(temp % 10);temp / 10;}}return C; } int mult2(int n){//普通阶乘int sum 1;for (int i 2; i n; i) sum * i;return sum; } int main(){ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);int n;while(cin n){if (n 0) break;int sum 0;long long a[27];for(int i 1;in; i){cin a[i];sum a[i];}vectorint C mult1(sum);for(int i 1; i n; i){ //运用累除的方法可以简化为高精度除以非高精度 我事先判断了12的阶乘在int的存储范围内C div(C, mult2(a[i]));}for(int i C.size() - 1;i0;i--) cout C[i];cout endl;}return 0; } 参考题解2Java大整数类实现 import java.util.Scanner; import java.math.BigInteger; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n;while(sc.hasNextInt()){n sc.nextInt();if(n0) break;long sum 0;int[] a new int[27];for(int i 1;in;i){a[i] sc.nextInt();sum a[i];}BigInteger ans BigInteger.ONE;for(int i 1;isum;i){ans ans.multiply(BigInteger.valueOf(i));}for(int i 1;in;i){long tmp 1;for(int j 1;ja[i];j){tmp tmp * j;}ans ans.divide(BigInteger.valueOf(tmp));}System.out.println(ans);}} } 参考题解3Python整型再大也能存的下 from math import factorial from sys import stdinfor line in stdin:n int(line.strip())if n 0:breaka list(map(int, stdin.readline().strip().split()))sum_a sum(a)ans factorial(sum_a)for num in a:ans // factorial(num)print(ans)问题 J: 寻找素数对 思路 从n/2开始往左找循环体变量假设为i如果i和n-i都是素数直接输出并且break掉循环。 参考题解 #include iostream using std::cin; using std::cout; int main(){cin.tie(nullptr)-sync_with_stdio(false);auto isPrime [](int num)-bool{if(num2) return false;for(int i 2;inum/i;i) if(num%i0) return false;return true;};int m;while(cin m,m){int mid m/2;for(int i mid;i2;i--){if(!isPrime(i)) continue;if(isPrime(m-i)){cout i m-i \n;break;}}}return 0; } 问题 K: 水果  思路         最快最直接的方法就是用二维map来存然后直接输出它甚至都不需要任何的排序因为map内部是红黑树实现默认就是有序的。 参考题解 #include iostream #include map #include string using std::cin; using std::cout; using std::map; using std::string; int main(){cin.tie(nullptr)-sync_with_stdio(false);auto solve [](){mapstring,mapstring,int mp;int n;cin n;for(int i 1;in;i){string fruit,province;int num;cin fruit province num;mp[province][fruit]num;}for(auto pro:mp){cout pro.first \n;for(auto fru:pro.second){cout |---- fru.first ( fru.second )\n;}}cout \n;};int _ 1;cin _;while(_--) solve();return 0; } 问题 L: 排名次 思路 结构体排序的基本题当然用pair也可以。 参考题解 #include iostream #include string #include vector #include algorithm using std::cin; using std::cout; using std::string; using std::vector; int main(){cin.tie(nullptr)-sync_with_stdio(false);vectorstd::pairint,string ans;int n;cin n;for(int i 1;in;i){string name;int score;cin name score;ans.emplace_back(score,name);}std::sort(ans.begin(),ans.end(),[](const std::pairint,string p1,const std::pairint,string p2){if(p1.first!p2.first) return p1.firstp2.first;else return p1.secondp2.second;});for(auto t:ans) cout t.second t.first \n;return 0; } 问题 M: 奇怪的处理器 思路 看懂题目就很好写了实际上题目就是让我们从左往右找第一个出现0的位置如果没出现0那么答案就是整个长度。如果用string读入用string的库函数find_first_of()可以直接秒。 参考题解 #include bits/stdc.h using namespace std; int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n;cin n;string s;cin s;cout (s.find_first_of(0)!string::npos?s.find_first_of(0)1:n) \n; return 0; } 问题 N: 打印格子 思路 第一第二行都比较好写第三行和第四行模拟一下从对应的最初位置开始到碰到边界结束即可。 参考题解 #include iostream using std::cin; using std::cout; int main(){cin.tie(nullptr)-sync_with_stdio(false);int n,x,y;cin n x y;for(int i 1;in;i) cout ( x , i ) \n[in];for(int i 1;in;i) cout ( i , y ) \n[in];int tmpx x,tmpy y;while(tmpx!1tmpy!1){--tmpx,--tmpy;}while(tmpx!n1tmpy!n1){cout ( tmpx , tmpy ) \n[tmpxn||tmpyn];tmpx,tmpy;}tmpx x,tmpy y;while(tmpx!ntmpy!1){tmpx,--tmpy;}while(tmpx!0tmpy!n1){cout ( tmpx , tmpy ) \n[tmpx1||tmpyn];--tmpx,tmpy;}return 0; } 问题 P: 孜谦的双重素数 思路 1.暴力法如果直接外层跑for循环假设循环变量为i内层先判断i是否为素数跑循环再判断i的各位数之和是否为素数那会TLE超时正确的做法是内层循环先判断i的各位数之和是否为素数再去判断i是否为素数。因为i可能会很大如果先直接判断i的素性那么时间复杂度最坏是O(T*((R-L1)*sqrt(R)))最坏大约是3e10的数据量在5s内肯定处理不了。 2.欧拉筛也称线性筛前缀和预处理用使用欧拉筛法预处理出1~3e6内所有数的素性在遍历一遍1~3e6假设循环遍历为i计算出i的各位数之和如果i和i的各位数之和都为素数则prefix[i]prefix[i-1]1否则prefix[i]prefix[i-1]。欧拉筛和前缀和的预处理的时间复杂度都为O(n)预处理的数据量为3e6左右而处理查询的时间复杂度是O(1)。 参考题解1暴力法 #include bits/stdc.h using namespace std; bool isPrime(int num){if(num2) return false;for(int i 2;inum/i;i) if(num%i0) return false;return true; } void solve(){int l,r;cin l r;int cnt 0;for(int i l;ir;i){int tmp i,sum 0;while(tmp){sumtmp%10;tmp/10;}if(!isPrime(sum)) continue;if(!isPrime(i)) continue;cnt;}cout cnt \n; } int main() {ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);int T 1;cin T;while(T--) solve();return 0; } 参考题解2欧拉筛前缀和 #include iostream using std::cin; using std::cout; constexpr int N 3e65; int cnt,prime[N],sum[N]; int prefix[N]; bool vis[N]; void get_primes(int n){for(int i 2;in;i){if(!vis[i]) prime[cnt]i;for(int j 0;prime[j]n/i;j){vis[prime[j]*i]1;if(i%prime[j]0) break;}} } int main(){std::ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);get_primes(int(3e6));vis[0]vis[1]1;for(int i 1;i3e6;i){int t i,tmp 0;while(t){tmpt%10;t/10;}sum[i]tmp;}for(int i 1;i3e6;i){if(!vis[sum[i]]!vis[i]) prefix[i]prefix[i-1]1;else prefix[i]prefix[i-1];}int _ 1;cin _;;while(_--){int l,r;cin l r;cout prefix[r]-prefix[l-1] \n;}return 0; } 问题 Q: 矩阵的局部极大值 思路         从内层矩形开始遍历判断即可满足条件就放进vector最后先判断vector的大小如果为0要特殊处理输出否则顺序输出结果即可因为遍历的时候就是有序的所以不用再排序了。 参考题解 #include iostream #include vector #pragma GCC O(2) using std::cin; using std::cout; using std::pair; using std::vector; int main(){cin.tie(nullptr)-sync_with_stdio(false);constexpr int N 25;int g[N][N];int dx[] {0,0,-1,1};int dy[] {-1,1,0,0};vectorpairpairint,int,int ans; int n,m;cin n m;for(int i 1;in;i) for(int j 1;jm;j) cin g[i][j];for(int i 2;in-1;i){for(int j 2;jm-1;j){int flag 1;for(int k 0;k4;k){int u idx[k],v jdy[k];if(g[i][j]g[u][v]){flag 0;break;}}if(flag) ans.push_back({{i,j},g[i][j]});}}if(!ans.size()) cout None n m \n;else{for(auto t:ans){cout t.second t.first.first t.first.second \n;}}return 0; }
http://www.pierceye.com/news/561618/

相关文章:

  • 威海外贸网站建设可拖拽html网页编辑器
  • 西乡塘网站建设企业vi形象设计是什么意思
  • 做服装到哪个网站拿货品质好广告软文小故事200字
  • 廊坊网站建设设计wordpress上传后如何访问
  • 禅城网站制作网站推广优化技巧大全
  • xampp做的网站能搜索吗广州外贸公司集中地
  • 茶网站建设网站的基础建设
  • 大型机械网站建设公司免费的cms视频网站
  • 杭州做网站哪家好在线设计平台都有哪些比较好用的
  • 内外网网站栏目建设方案专门做电容的网站
  • 一般网站字体多大有没有做公司网站的
  • 做国外进口衣服的网站好怎么推广公众号
  • 安县建设局网站网站建设分金手指排名一
  • 社区网站制作教程社交媒体营销
  • 云南省建设工程质量监督管理站网站房产网站推广
  • 做网站挣钱吗营销导向的企业网站建设步骤
  • 优化网站 优帮云网站是意识形态建设
  • 网站内容建设运维服务wordpress envato主题
  • 响应式网站的几种尺寸推广网站的几种方法
  • php 打开网站东莞网站建设网页推广
  • 正品海外购网站有哪些公司网站开发费用兴田德润在哪儿
  • 怎样做编辑发到网站自由建网站的网络程序
  • 网站开发 卡片cms建站系统 下载
  • 新浪门户网站是谁做的科技网站建设
  • 免费网站建设合同书山西网站建设企业
  • 网站建设空间什么意思学做网站什么语言合适
  • 网站开发的形式有( )友情链接英文
  • 帝国网站管理系统前台免费photoshop下载
  • 深圳一百讯网站建设wordpress汉化包
  • 建设一个班级网站的具体步骤自己的网站源代码一片空白