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

西安网站托管排名做网站单页视频

西安网站托管排名,做网站单页视频,网站技术招标怎么做,网站建设使用什么软件诶呀,真的把时间给忘记掉了,本来是下午准备打的,但是前一天给记成了晚上,导致晚上的周赛也错过了。真的是有点麻瓜了哈。。。。 题目意思: 给定数组,判断在交换两个数或者不交换的情况下数组是否是升序。 …

诶呀,真的把时间给忘记掉了,本来是下午准备打的,但是前一天给记成了晚上,导致晚上的周赛也错过了。真的是有点麻瓜了哈。。。。

题目意思:

给定数组,判断在交换两个数或者不交换的情况下数组是否是升序。

思路:

贪心,直接找到不符合题目两个数字,进行交换,最后判断交换的数组是否是升序。非常麻瓜的一种思想,写法也非常的无脑。

#include <bits/stdc++.h>
using namespace std;
#define int long long
void solve() {int m;cin>>m;vector<int>ac(m+1);for(int i=1;i<=m;i++){cin>>ac[i];}int sum=0;bool k=0;int qi=-1;//找到第一个不满足的数字int hou=-1;//第二个不满足的数字for(int i=2;i<=m;i++){if(ac[i]<ac[i-1]){sum++;if(k==0){k=1;qi=i-1;}else{hou=i;}}}if(sum==0){//如果数组本身就是升序的情况cout<<"Sorted"<<endl;return;}else if(sum>2){//有多个数字要交换的情况cout<<"Failed"<<endl;return;}else{swap(ac[qi],ac[hou]);//对原先的两个数字进行交换,最后判断for(int i=2;i<=m;i++){if(ac[i]<ac[i-1]){cout<<"Failed"<<endl;return;}}cout<<"Sorted"<<endl;return;}
}
signed  main() {int n=1;//cin>>n;while(n--)solve();return 0;
}

 

题目意思:

给定一个初始整数 m=n,每次操作将 m 随机替换为 0 到 m−1 之间的一个均匀随机整数,直到 m=0。求期望的操作次数。

思路:

设 E[m] 表示从 m 开始到 0 的期望操作次数

E[0]=0,初始化

但是,m在题目中是10的5次方,较大,预处理E[m]的时间复杂度会比较大 ,显然我们第一眼想到的是前缀和进行优化。

因此,只剩下了两种写法。

一个是对E[m]的不断更新,一个是对S[m]的不断更新

#include <bits/stdc++.h>
using namespace std;
const int nima = 1e5;
vector<double> E(nima + 1, 0.0);
vector<double> S(nima + 1, 0.0);
int main() {E[0] = 0.0;S[0] = 0.0;for (int m = 1; m <= nima; ++m) {E[m] = 1.0 + S[m - 1] / m;S[m] = S[m - 1] + E[m];}int T;cin >> T;while (T--) {int n;cin >> n;cout << fixed << setprecision(7) << E[n] <<endl;}
}

 

题目意思:

给定n个房间,每个房间有若干个可以传送的门,每一个门可以传送到任意位置,包括自身。

判定是否无论怎样对门进行配对,总有一个出口,即从1一定能到n。

思路:

给定n个节点,第i个节点需要和自身或其他节点连边ai次。 问1号点是否一定能到达n号点。

我们把每一个门想成一条边,每个点之间看成节点。故,可以画出一个简单的图。

题目给出所有的ai之和一定是偶数,我们从连通块的角度切入看,由于一条边连接两个点,所以

一个连通块的ai之和一定是一个偶数。

若数组 a 中只有 a1​ 和 an​ 为奇数,考虑 a1​ 所在连通块,只要不向 an​ 连边,就不可能满足奇偶性,故答案为 Yes。

反之,令每个节点优先向自身连边。若 a1​ 为偶数,答案为 No;若 a1​ 为奇数,必然可以找到另一个非 an​ 的奇数与之连接,答案同样为 No。

故:

特判只有全数组a1和an为奇数的情况下才满足条件

#include <bits/stdc++.h>
using namespace std;
#define int long long
inline void solve(){int m;cin>>m;vector<int>a(m+1);bool ok=0;for(int i=1;i<=m;i++){cin>>a[i];if(i>=2&&i!=m){if(a[i]&1)ok=1;//判断除了第一个和最后一一个数字之外的奇数情况}}if(m==1){//数组里面只有一个数字,特判cout<<"Yes"<<endl;return;}if(a[1]&1&&a[m]&1&&!ok){cout<<"Yes"<<endl;return;}cout<<"No"<<endl;return;
}
signed main(){int n;cin>>n;while(n--){solve();}
}

 题目意思:

给出四种情况,分别算出各个情况下的线段长度。

思路:

第一种情况我们用高中的三角函数思想运用圆心角解决。

圆心角对应的弦长是d*sin(a/2)

第二三种情况刚好是相反的。

最后一种直接输出圆的直径。

#include <bits/stdc++.h>
using namespace std;
#define int long long
double PI=3.14159265;
inline void solve(){string ac;cin>>ac;double C=2*PI*50;//先对周长初始化cout<<fixed<< setprecision(7);//保留7位小数if(ac[1]=='-'){int answer=abs((ac[0]-'0')-(ac[2]-'0'));if(answer>4){answer=8-answer;}//这里sin的函数内的值对应的是弧度制下的我们还要进行转换cout<<100*sin((45*answer*PI)/(360))<<endl;}else if(ac[1]=='>'){if(ac[0]<ac[2]){cout<<C*(ac[2]-ac[0])/8<<endl;//注意这里要是看是劣弧还是优弧}else{cout<<C*(8+ac[2]-ac[0])/8<<endl;}}else if(ac[1]=='<'){int sum=abs(ac[0]-ac[2]);if(ac[0]>ac[2]){cout<<C*(sum)/8<<endl;}else{cout<<C*(8-sum)/8<<endl;}}else{cout<<100<<endl;}
}
signed main(){int n;cin>>n;while(n--){solve();}
}

题目意思:

定义数组前缀和Sn,如果前缀和里面所有的数字都是正整数,定义为good数组,对数组进行n次循环左移的操作,输出n次操作中good数组的个数。

思路:

暴力想法TLE,我们不妨用滑动窗口的思想,记录每一次移动后最小的前缀和数字。

最后通过判断最小前缀和数字和原先前缀和的大小关系来判断是否是good数组。

其实最后的判断大小大家可以自己推一遍,会很清晰。

判断大小就是变相的减去。

#include <bits/stdc++.h>
using namespace std;
const int op=8e18;
int main() {int n;cin >> n;vector<int> a(n);for (int i = 0; i < n; i++) {cin >> a[i];}// 计算扩展为2n长度的前缀和数组vector<long long> pre(2 * n + 1, 0);for (int i = 0; i < 2 * n; i++) {pre[i + 1] = pre[i] + a[i % n];}// 使用单调队列来维护窗口中的最小值deque<int> q;vector<long long> suf(2 * n + 1, op);// 初始化前n个元素的窗口for (int i = 1; i <= n; i++) {while (!q.empty() && pre[i] <= pre[q.back()]) {q.pop_back();}q.push_back(i);}suf[0] = pre[q.front()];//suf存储的是第i次向左移动后的最小前缀和// 滑动窗口处理后续元素for (int i = n + 1; i <= 2 * n; i++) {// 移除窗口外的元素while (!q.empty() && q.front() < i - n) {q.pop_front();}// 维护队列单调性while (!q.empty() && pre[i] <= pre[q.back()]) {q.pop_back();}q.push_back(i);// 当前窗口的最小值suf[i - n] = pre[q.front()];}// 计算结果int goodCount = 0;for (int s = 0; s < n; s++) {if (suf[s] >= pre[s]) {//通过比较第i次移动的最小前缀和与前i项之和的比较可以判断是否满足题目条件goodCount++;}}cout << goodCount << endl;return 0;
}


文章转载自:

http://Ogc6aIjv.wxfjx.cn
http://K9b6xZ7K.wxfjx.cn
http://oQmZvMFR.wxfjx.cn
http://qqcWhGKy.wxfjx.cn
http://r1uLxmP8.wxfjx.cn
http://VyJm2sCh.wxfjx.cn
http://zkgLZSBE.wxfjx.cn
http://KpQrk0I8.wxfjx.cn
http://YmpOM5ID.wxfjx.cn
http://xASSMEr9.wxfjx.cn
http://eA8kAvmP.wxfjx.cn
http://0oLudsOT.wxfjx.cn
http://wh3QrvaC.wxfjx.cn
http://0MWizhKw.wxfjx.cn
http://WJtH1bcF.wxfjx.cn
http://WEyWjR5O.wxfjx.cn
http://XJnBcM0Y.wxfjx.cn
http://f674KTCE.wxfjx.cn
http://G7DxlHRJ.wxfjx.cn
http://S5hJIJOD.wxfjx.cn
http://RNjNrB7X.wxfjx.cn
http://bIcC2z97.wxfjx.cn
http://8SBuq04Q.wxfjx.cn
http://b0fToXbc.wxfjx.cn
http://IgwXsWRk.wxfjx.cn
http://lRkdyXek.wxfjx.cn
http://FJL6qApE.wxfjx.cn
http://JPGEUlhv.wxfjx.cn
http://RBnLdgil.wxfjx.cn
http://b74HFzsd.wxfjx.cn
http://www.dtcms.com/wzjs/619696.html

相关文章:

  • 厦门网站建设阳哥建网站需要软件
  • 崇文手机网站建设企业网站ui设计
  • 基于cms设计网站的背景意义保定投递网站建设
  • 网站设计咨询电话广东新闻联播林红
  • 网站后台编辑器不显示火车头wordpress自动排版
  • 商城网站主机装修贷
  • 昆明网站制作前十企业网站模板 优帮云
  • 学习网站开发技术百度词条优化工作
  • 买的网站模板会影响深圳做app网站建设
  • 网站首页权重国内网站建设代理
  • 扬州大发网站建设wordpress附件修复
  • 广西南宁电商网站建设抖音代运营服务协议
  • 专业网页设计和网站制作公司中信建设有限责任公司临空经济区
  • 个体工商户经营范围网站开发wordpress首页模块修改
  • 做网站一个月多少钱专业做农牧应聘的网站
  • 旅游网站系统设计wordpress模板top破解版
  • 制作手机网站什么软件焦作企业网站建设
  • 手机网站制作软件下载宝塔网站301重定向怎么做
  • 两人做性视频网站手机棋牌app软件开发
  • 网站关键词几个建设通网站是什么网站
  • 简述网站建设流程网站开发一个模板费用
  • 做网站一班需要多少钱wordpress文章只显示题目
  • 官网网站源码模板网站的缺点
  • 专业的网站建设公网站如何收费
  • 晋城市 制作网站企业门户网站建设市场
  • 工具站seoartisteer 做的网站
  • 计算机机应用网站建设与维护浅谈阿里企业的电子网站建设
  • 移动网站建设推荐网站开发宣传广告
  • 新手学网页设计的网站wordpress 纯净版下载地址
  • 网站建设的项目计划阿克苏网站建设服务