测试0010

1

#include <iostream>
using namespace std;
int n;
int main (){
    scanf("%d", &n);
    long long sum,i;
    sum=0;
    for (i=1;sum<n;i++){
        sum+=i*i*i;
    }
    printf ("%lld\n",sum==n?i-1:i-2);
}

2

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n;
bool st[10][10];
bool l[2][20],dg[2][20],udg[2][20];
// l列,dg对角线,udg反对角线
int ans=0;
char g[10][10];
void dfs(int u){
    if (u>n){
        ans++;
        // for (int i=1;i<=n;i++){
        //     printf ("%s\n",g[i]+1);
        // }
        // puts("");
        return ;
    }
    for (int i=1;i<=n;i++){
        if (st[u][i]&&!l[0][i]&&!dg[0][i+u-1]&&!udg[0][i-u+n]){
            st[u][i]=0;
            l[0][i]=dg[0][i+u-1]=udg[0][i-u+n]=1;
            g[u][i]='A';
            for (int j=1;j<=n;j++){
                if (st[u][j]&&!l[1][j]&&!dg[1][j+u-1]&&!udg[1][j-u+n]){
                    st[u][j]=0;
                    l[1][j]=dg[1][j+u-1]=udg[1][j-u+n]=1;
                    g[u][j]='B';
                    dfs(u+1);
                    g[u][j]='.';
                    st[u][j]=1;
                    l[1][j]=dg[1][j+u-1]=udg[1][j-u+n]=0;
                }
            }
            st[u][i]=1;
            l[0][i]=dg[0][i+u-1]=udg[0][i-u+n]=0;
            g[u][i]='.';
        }
    }
}
int main(){
    scanf("%d", &n);
    for (int i = 1; i <= n; i ++ ){
        for (int j=1;j<=n;j++){
            scanf ("%d",&st[i][j]);
            if (st[i][j]) g[i][j]='.';
            else g[i][j]='X';
        }
    }
    dfs(1);
    cout<<ans;
    return  0;
}
// 4
// 1 1 1 1 
// 1 1 1 1 
// 1 1 1 1 
// 1 1 1 1

3

#include <iostream>
using namespace std;
int l,r;
int a[100010],n,cnt;
bool st[100010];
void get_prime(int n){
    for (int i=2;i<=n;i++){
        if (!st[i]) a[cnt++]=i;
        for (int j=0;a[j]<=n/i;j++){
            st[a[j]*i]=1;
            if (i%a[j]==0) break;
        }
    }
}
int dived(int x){
    for (int i=0;i<cnt;i++){
        if (x%a[i]==0) return a[i];
    }
    return 1;
}
int main (){
    get_prime(10010);
    scanf("%d%d", &l, &r);
    for(int i=l;i<=r;i++){
        printf ("%d=",i);
        if (!st[i]) printf ("%d\n",i);
        else {
            int t=i;
            int ans[100010];
            int cnts=0;
            while (t!=1){
                int u=dived(t);
                ans[cnts++]=u;
                t/=u;
            }
            for (int i=0;i<cnts;i++){
                if (!i) printf ("%d",ans[i]);
                else printf ("*%d",ans[i]);
            }
            printf ("\n");
        }
    }
}

4

#include <iostream>
#include <unordered_map>
using namespace std;
unordered_map <int,string> mp;
void print(int x){
    if (x<=20) {
        cout<<mp[x]<<' ';
    }
    else {
        cout<<mp[x/10*10]<<' ';
        if (x%10) cout<<mp[x%10]<<' ';
    }
}
int main (){
    mp[0]="zero",mp[1]="one",mp[2]="two",mp[3]="three",mp[4]="four";
    mp[5]="five",mp[6]="six",mp[7]="seven",mp[8]="eight",mp[9]="nine";
    mp[10]="ten",mp[11]="eleven",mp[12]="twelve",mp[13]="thirteen";
    mp[14]="fourteen",mp[15]="fifteen",mp[16]="sixteen",mp[17]="seventeen";
    mp[18]="eighteen",mp[19]="nineteen",mp[20]="twenty",mp[30]="thirty";
    mp[40]="forty",mp[50]="fifty";
    int a,b;
    scanf("%d%d", &a, &b);
    print(a);
    if (!b) puts("o'clock");
    else print(b);
}

5

#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

const int N = 55;

int n;
int x[N];

int main()
{
    cin >> n;
    for (int i = 0; i < n; i ++ ) cin >> x[i];

    int left = 0, right = 0;    // 分别表示左边向右走的蚂蚁数量,和右边向左走的蚂蚁数量
    for (int i = 1; i < n; i ++ )
        if (abs(x[i]) < abs(x[0]) && x[i] > 0) left ++ ;
        else if (abs(x[i]) > abs(x[0]) && x[i] < 0) right ++ ;

    if (x[0] > 0 && right == 0 || x[0] < 0 && left == 0) cout << 1 << endl;
    else cout << left + right + 1 << endl;

    return 0;
}
上一篇:spark-shell报错java.lang.IllegalArgumentException: java.net.UnknownHostException: namenode


下一篇:HDFS(first)