这个90%找不到错在哪,求指北 #include <iostream> #include <vector> #include <deque> #include <algorithm> using namespace std; int main(int argc, const char * argv[]) {     // insert code here...     int n,k,tmp;     cin>>n>>k;     vector<double> buf(n);     for (int i=0; i<n; i++) {         cin>>tmp;         buf[i] = 1.0*tmp/(k-2);     }     int idx = 0;     deque<double> s1,s2;     double res=0,s=0;     while(idx<k)     {         s+=buf[idx];         while (s1.size()&&s1.back()<buf[idx]) {             s1.pop_back();         }         s1.push_back(buf[idx]);         while (s2.size()&&s2.back()>buf[idx]) {             s2.pop_back();         }         s2.push_back(buf[idx]);         idx++;     }     //    cout<<"%^&*"<<s1.top()<<','<<s1.top()<<endl;     res = s-s1.front()-s2.front();     while (idx<n) {         s+=buf[idx];         s-=buf[idx-k];         if(s1.size()&&abs(s1.front()-buf[idx-k])<0.00000001)             s1.pop_front();         if(s2.size()&&abs(s2.front()-buf[idx-k])<0.00000001)             s2.pop_front();         while (s1.size()&&s1.back()<buf[idx]) {             s1.pop_back();         }         s1.push_back(buf[idx]);         while (s2.size()&&s2.back()>buf[idx]) {             s2.pop_back();         }         s2.push_back(buf[idx]);         idx++;         res = max(res,s-s1.front()-s2.front());         //        cout<<"%^&*"<<s1.top()<<','<<s1.top()<<endl;     }     cout<<res<<endl;     return 0; }
点赞 5

相关推荐

点赞 评论 收藏
分享
2024-12-29 19:48
河北科技大学 Java
没事就爱看简历:问题不在于简历:1、大学主修课程学那么多应用语言,作为计算机专业是很难理解的。 2、技能部分,每一个技能点的后半句话,说明对熟练,熟悉的标准有明显误会。 3、项目应该是校企合作的练习吧,这个项目你负责什么,取得了哪些成果都没有提及,只是列举了你认为有技术含量的点,而这些都有成熟的实现。
点赞 评论 收藏
分享

牛客热帖

更多
牛客网
牛客企业服务