zoukankan      html  css  js  c++  java
  • 2020-03-14 解题报告

    F. Floor Plan

    You are an architect and you have just been appointed to build a new swimming hall. The organisation behind these plans has acquired funding for a swimming pool and surrounding building as large as they want, but unfortunately they could not find anyone willing to pay for the floor surrounding the pool. They decided to pay for the floor tiles out of their own pocket. Because this has already cost them an arm and a leg, they want you to use all the floor tiles in your proposed plan. 

    Being an architect, you care for aesthetics. You see it as absolutely vital that both the swimming pool and the surrounding building are perfect squares. This raises an interesting problem: how can you make sure that the square shapes are guaranteed, while still using all the floor tiles the organisation bought? 

    Given the number of tiles n, find the length of the side of the building m and the length of the side of the pool k such that n = m^2 − k^2, or print "impossible" if no suitable m and k exist. 

    INPUT:

    • One line containing a single integer 1 ≤ n ≤ 10^9.

    Output:

     Print two non-negative integers m, k such that n = m^2−k^2, or print impossible if no such integers exist. If there are multiple valid solutions, you may output any one of them.

    NOTE:

    For all case,0<=m,k<10^18

    本题答案不唯一,符合要求的答案均正确

     

    题目大意是找出符合条件的 m,k 使得 n = m^2−k^2 

    思路是大佬队友想出来的

     

     1 #include <iostream>
     2 using namespace std;
     3 int main(){
     4     int m,k;
     5     int n;
     6     cin>>n;
     7     if(n%4==0){
     8         cout<<(n/2+2)/2<<" "<<(n/2-2)/2<<endl;
     9     }
    10     else if(n%2==0){
    11         cout<<"impossible"<<endl;
    12     }
    13     else{
    14         cout<<n/2+1<<" "<<n/2<<endl;
    15     }
    16     return 0;
    17 }

     I. Inquiry I

    The Bureau for Artificial Problems in Competitions wants you to solve the following problem: Given n positive integers a1, . . . , an, what is the maximal value of 

    forma.jpg

    Input: 

    • A single line containing an integer 2 ≤ n ≤ 10^6. 

    • Then follow n lines, the ith of which contains the integer 1 ≤ ai ≤ 100.

    Output:

     Output the maximal value of the given expression.

    看了网上的答案,思路是先加全部的数,再判断出最大的答案

    自己写了一遍

    注意数据范围,res 用long long

     1 #include <iostream>
     2 #include <cmath>
     3 #define ll long long
     4 using namespace std;
     5 
     6 int a[1000000];
     7 
     8 int main(){
     9     int n;
    10     cin>>n;
    11     ll sum1=0,sum2=0;
    12     for(int i=0;i<n;i++){
    13         cin>>a[i];
    14         sum2+=a[i];
    15     }
    16     ll res=sum1*sum2;
    17     for(int i=0;i<n;i++){
    18         sum1+=pow(a[i],2);
    19         sum2-=a[i];
    20         res=max(res,sum1*sum2);
    21     }
    22     cout<<res<<endl;
    23     return 0;
    24 }
  • 相关阅读:
    滚屏到相应位置才加载图片
    cs文件编译成dll文件
    SPAM搜索引擎垃圾技术
    新HTML元素:Canonical Link(权威链接),解决网络复制内容
    Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
    VS2005发布网站项目时整个站点生成为一个自定义名称的dll文件
    301转向代码合集
    区别不同浏览器,CSS hack写法
    教你识别交换购买友情链接里的八种骗局真相!
    C#中Cookies的存取
  • 原文地址:https://www.cnblogs.com/-gcq/p/12521390.html
Copyright © 2011-2022 走看看