Recent submission : 7/day .

News

题目-admin
-admin
作业-admin
1.鸡兔同笼
2.1.球弹跳高度的计算【1.5编程基础之循环控制17】
    一球从某一高度h落下(单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?
    输出包含两行,第1行:到球第10次落地时,一共经过的米数。第2行:第10次弹跳的高度。
输入:
    输入一个整数h,表示球的初始高度。
输出:
    第1行:到球第10次落地时,一共经过的米数。
    第2行:第10次弹跳的高度。
    注意:结果可能是实数,结果用double类型保存。
    提示:输出时不需要对精度特殊控制,用cout << ANSWER,或者printf("%g", ANSWER)即可。
样例输入:
    20
样例输出:
    59.9219
    0.0195313


算法-admin
传不了太大了 

链接:https://pan.baidu.com/s/1JwBXMWgUu9cRdBqKHccbCQ?pwd=39fb 
提取码:39fb 
--来自百度网盘超级会员V4的分享

参考-admin
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a;
cin>>a;
if (a>='a'&&a<='z'){
cout<<"lowercase";
}
}   
输入输出-admin
1、scanf("%d%d",&a,&b);                          cin>>a>>b;
       printf(“%d%d”,a,b);                                cout<<a<<b;
2、printf(“%.3lf”,a);                       cout<<fixed<<setprecision(3); (#include #include<iomanip>)
      scanf("%lf",&a);                         cin>>a;
3、int x=ceil(3.14) ;         int x=floor(x);      int x=round(3.14);
       数学基础函数
4、if(x==0)                          if(!x)
       if(x!=0)                          if(x)
if(a>0&& a<100)        if(!(a<=0 || a>=100))
       if((a<=0 || a>=100))   
6、a=a+b;                          a+=b;

          


rpg-admin
#include<cstdio>
#include <iostream>
#include <cstring>
#include<queue>
/*
 得到加药得到就吃,  这个*2的药就有讲究了可能需要在后面累加到一定值*2     每次比赛前三种情况   对于>p2的 直接加t2过

/<p1的肯定要加多少 就有很多种情况了 直到加到>p2就停止了就OK了    [p1,p2]里一样
每次计算w2的药数量,只要有+药,每次必须吃加药,然后分别对  t2时间和线性时间处理,记录一个k作为步数,为n时动作完成
*/
using namespace std;
struct node
{
    double p1,p2,t1,t2,w1,w2;
} plants[1010];

struct bode
{
    int p;
    int k;
    double t;
    int w1,w2;
} ft,et;

int m,n;
double MAX;

void bfs()
{
    queue<bode>Q;
    ft.p=m;
    ft.k=0;
    ft.t=0;
    ft.w1=0,ft.w2=0;
    Q.push(ft);
    while(!Q.empty())
    {
        ft=Q.front();
        Q.pop();
        if(ft.k==n)
        {
            if(MAX>ft.t)
                MAX=ft.t;
            continue;
        }
        if(ft.p>plants[ft.k+1].p2)//比最大的power还大,用+药
        {
            ft.p+=plants[ft.k+1].w1;
            ft.w2+=plants[ft.k+1].w2;
            ft.t+=plants[ft.k+1].t2;
            ft.k+=1;
            Q.push(ft);
        }
        else if(ft.p<plants[ft.k+1].p1)
        {
            et=ft;
            int j=ft.w2;
            for(int i=1; i<=j; i++)//尝试,看看要用几瓶*2药----------
            {//                                                      |
                ft.p*=2;                                       //    |
                if(ft.p<plants[ft.k+1].p1)                       //  |
                    continue;                                    //  |
                if(ft.p>plants[ft.k+1].p2)                       //  |
                {                                                 // k退回,继续尝试,直到执行continue。
                    ft.t=et.t+plants[ft.k+1].t2;                  // |
                    ft.w2=et.w2+plants[ft.k+1].w2-i;//剩下的w2药  // |
                    ft.p+=plants[ft.k+1].w1;//吃w1                // |
                    ft.k++;                                       // |
                    Q.push(ft);                                   // |
                    ft.k--;//-----------------------------------------
                    ft.p-=plants[ft.k+1].w1;
                    break;
                }
                else
                {
                    ft.w2=et.w2+plants[ft.k+1].w2-i;
                    double T1=plants[ft.k+1].t1;
                    double T2=plants[ft.k+1].t2;
                    double P1=plants[ft.k+1].p1;
                    double P2=plants[ft.k+1].p2;
                    double pp=(T1-T2)*1.0/(P2-P1);
                    ft.t=et.t+(T1-pp*(ft.p-P1)*1.0);
                    ft.p+=plants[ft.k+1].w1;
                    ft.k++;
                    Q.push(ft);
                    ft.k--;
                    ft.p-=plants[ft.k+1].w1;
                }
            }
        }
        else
        {
            et=ft;
            int j=ft.w2;
            for(int i=0; i<=j; i++)//>=plants[ft.k+1].p1多了=情况
            {
                if(i==0)  ft.p*=1;
                else ft.p*=2;
                if(ft.p<plants[ft.k+1].p1)
                    continue;
                if(ft.p>plants[ft.k+1].p2)
                {

                    ft.t=et.t+plants[ft.k+1].t2;
                    ft.w2=et.w2+plants[ft.k+1].w2-i;
                    ft.p+=plants[ft.k+1].w1;
                    ft.k++;
                    Q.push(ft);
                    ft.k--;
                    ft.p-=plants[ft.k+1].w1;
                    break;
                }
                else
                {
                    ft.w2=et.w2+plants[ft.k+1].w2-i;
                    double T1=plants[ft.k+1].t1;
                    double T2=plants[ft.k+1].t2;
                    double P1=plants[ft.k+1].p1;
                    double P2=plants[ft.k+1].p2;
                    double pp=(T1-T2)*1.0/(P2-P1);
                    ft.t=et.t+(T1-pp*(ft.p-P1)*1.0);
                    ft.p+=plants[ft.k+1].w1;
                    ft.k++;
                    Q.push(ft);
                    ft.k--;
                    ft.p-=plants[ft.k+1].w1;
                }
            }
        }
    }
}

int main()
{
    int i;
    while(~scanf("%d%d",&n,&m),n+m)
    {
        for(i=1; i<=n; i++)
        {
            scanf("%lf%lf%lf",&plants.p1,&plants.p2,&plants.t1);
            scanf("%lf%lf%lf",&plants.t2,&plants.w1,&plants.w2);
        }
        MAX=1999999999;
        bfs();
        if(MAX==1999999999)
        printf("Impossible\n");
        else printf("%.2lf\n",MAX);
    }
    return 0;
}
数制转换-admin
#include <iostream>
#include <string.h>
#include <stack>
#include <queue>
using namespace std;
int main()
{
char T[30];
cin>>T;
queue <int> Q;
int ans=0,n=0,p=0;
stack <int> S;
int len=strlen(T);
int i=0;
while(T>='0'&&T<='9')
Q.push(T[i++]-'0');
i++;
while(T>='0'&&T<='9')
n=n*10+T[i++]-'0';
i++;
while(T>='0'&&T<='9'&&i<len)
p=p*10+T[i++]-'0';
 
while(!Q.empty())
{
ans=ans*n+Q.front();
cout<<Q.front();
Q.pop();
}
while(ans)
{
S.push(ans%p);
ans/=p;
}
cout<<"<"<<n<<">=";
while(!S.empty())
{
cout<<S.top();
S.pop();
}
cout<<"<"<<p<<">"<<endl;
return 0;
}
乒乓球-admin
#include<bits/stdc++.h>
#define N 10000+10
using namespace std;
int a1[N], 
    b1[N],
    a2[N],
    b2[N],
    cnt1, //11制时局计数器 
    cnt2, //21制时局计数器 
len;

string str;
int main(){
string t;
while(cin>>t)str+=t;
// cout<<str<<endl;
len=str.size();
int i=0;
while(i<len&&str!='E'){
if(str=='W'){
if(a1[cnt1]+1==11&&b1[cnt1]<=9 
  || a1[cnt1]+1>11&&a1[cnt1]+1-b1[cnt1]>=2)
{
a1[cnt1]++;cnt1++;
}
else a1[cnt1]++;
    
    if(a2[cnt2]+1==21&&b2[cnt2]<=19
|| a2[cnt2]+1>21&&a2[cnt2]+1-b2[cnt2]>=2){
a2[cnt2]++;
cnt2++;

else a2[cnt2]++;
}


if(str=='L'){
if(b1[cnt1]+1==11&&a1[cnt1]<=9
|| b1[cnt1]+1>11&&b1[cnt1]+1-a1[cnt1]>=2){
b1[cnt1]++;cnt1++;
}
else{
b1[cnt1]++;
}


if(b2[cnt2]+1==21&&a2[cnt2]<=19
|| b2[cnt2]+1>21&&b2[cnt2]+1-a2[cnt2]>=2){
b2[cnt2]++;cnt2++;
}
else{
b2[cnt2]++;
}
}
i++;
}

for(int i=0;i<=cnt1;i++)cout<<a1<<':'<<b1<<endl;
// if(a1[cnt1]!=0||b1[cnt1]!=0)cout<<a1[cnt1]<<':'<<b1[cnt1]<<endl;
cout<<endl;
for(int i=0;i<=cnt2;i++)cout<<a2<<':'<<b2<<endl;
// if(a2[cnt2]!=0||b2[cnt2]!=0)cout<<a2[cnt2]<<':'<<b2[cnt2]<<endl;
return 0;
}
代码赏析-admin
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a;
    cin>>a;
    int b[a],c[a][10000];
    for(int o=0;o<a;o++)
    {
        cin>>b[o];
        for(int q=0;q<b[o];q++)
        {
            cin>>c[o][q];
        }
    }
    for(int i=0;i<a;i++)
    {
    int A=0;
        for(int e=0;e<b;e++)
        {
    int B=0;
            for(int f=0;f<b;f++)
            {
           
                for(int g=0;g<b;g++)
                {
                    if(c[e]==c[f]+c[g]&&f!=g&&f!=e&&e!=g)
                    {
                        
                            A++;
                            B=1;
                            break;
                        
                    }
                }
                if(B==1)
                {
                break;
}
            }
        }
        cout<<A<<endl;
    }
}