百度の星の初試合の1補題

14890 ワード

1001小Cの倍数問題
タイトル:
小学校の数学の知識によると、正の整数xが3の倍数である条件はxが1人ずつ加算された和が3の倍数であることが知られている.逆に、1桁ごとに3の倍数を加算すると、この数は3の倍数に違いありません.
ここで、進数Pが与えられ、どのくらいのBがP進数を満たすかを求めるには、正の整数がBの倍数である十分な必要条件は、各ビットに加算された和がBの倍数である.
 
私は本当に1つのmmpですwcnmlgbテーマは長い間読んでいないで後ろの署名の問題を読んでも書く気がありませんでした
他の人の問題解を見ても自分が本当に料理なのは分かったでしょう.
詳細:http://blog.csdn.net/qq_36306833/article/details/77127051
 
#include 
using namespace std;

int main ()
{
    ios::sync_with_stdio(false);
    int t;
    cin >> t;
    while (t--)
    {
        int n;
        cin >> n;
        n--;
        int res = 0;
        int i=1;
        for(;i*i)
        {
            if(n%i ==0 )
                res+=2;
        }
        if(i*i == n)
            res++;
        cout<< res <<endl;

    }
}

 
 
1006度クマの01世界
に言及
度度度熊はコンピューターが好きな子供で、コンピューターの世界では、すべてのものが実際には0と1で構成されています.
今、n*mの画像をあげます.彼が0なのか、1なのか、どちらでもないのかを見分ける必要があります.
画像0の定義:1文字が存在し、1文字は1つの連通ブロックのみからなり、0文字からなる1つの連通ブロックのみが完全に1に囲まれている.
画像1の定義:1文字が存在し、1文字は1つの連通ブロックのみで構成され、0文字の連通ブロックは1によって完全に囲まれていない.
連通の意味は,連続する2つのブロックに共通のエッジがあれば,連通と見なすことである.
完全に囲むとは、この連通ブロックが境界に接触しないことを意味する.
 
FBを手伝って最后に何の问题もないと感じてwaは1つの细部の上で周囲が0を补う时NをMに书くことを书くことを书いていませんでした
GG
#include 
using namespace std;
int N,M;
char s[105][105];


int dx[]={-1,0,0,1}; //4    
int dy[]={0,1,-1,0};
void dfs(int x,int y)
{
    s[x][y] = '#';
    for(int i=0;i<4;i++)
    {
        int fx = x+dx[i];
        int fy = y+dy[i];
        if(s[fx][fy]=='1'&& fx>=0 && fy<=M && fx<=N && fy>=0)
        {
            dfs(fx,fy);
        }
    }
}

void dfs0(int x,int y)
{
    s[x][y] = '#';
    for(int i=0;i<4;i++)
    {
        int fx = x+dx[i];
        int fy = y+dy[i];
        if(s[fx][fy]=='0'&& fx>=0 && fy<=M && fx<=N && fy>=0)
        {
            dfs0(fx,fy);
        }
    }
}
int main ()
{
    while (~scanf("%d %d ",&N,&M))
    {
        for(int i =1; i <=N ; i++)
        {
            scanf("%s",s[i]+1);
        }
        M++;N++;
        for(int i=0;i<=M;i++)
            s[0][i] = '0';
        for(int i=0;i<=N;i++)
            s[i][0] ='0';
        for(int i=0;i<=N;i++)
            s[i][M]='0';
        for(int i=0;i<=M;i++)
            s[N][i] ='0';
        int sum0=0 ,sum1 = 0;
        for(int i=0;i<=N;i++)
        {
            for(int j=0;j<=M;j++)
            {
                if(s[i][j]=='1')
                {
                    dfs(i,j);
                    sum1++;
                }
            }
        }
        for(int i=0;i<=N;i++){
            for(int j=0;j<=M;j++)
            {
                if(s[i][j]=='0')
                {
                    dfs0(i,j);
                    sum0++;
                }
            }
        }
        if(sum0 ==1 && sum1 == 1)
            cout << 1 <<endl;
        else if(sum0 ==2 && sum1 ==1 )
            cout << 0<<endl;
        else
            cout<1<<endl;
    }
    return 0;
}

 
1005今夕何夕
に言及
今日は2017年8月6日、旧暦閏6月15日です.
小度は一人で欄干に寄りかかって、丸い月を眺めて、“今夕何夕、この良人に会います”の寂しさの感慨を出しました.
鬱結を解消するために、数学の問題を考えることにしました.次の最近のどの年の同じ日は、今日の曜日と同じですか.例えば今日は8月6日、日曜日です.次の日曜日の8月6日は2023年に発生します.
小贴士:西暦では、4で割り切れるが100で割り切れない、または400で割り切れる年が閏年です.
 
 
#include
using namespace std;

bool is_run(int y)
{
    return ((y%4)==0&& (y%100)!=0 || y%400==0);
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int y,m,d;
        scanf("%d-%d-%d",&y,&m,&d);
        int sum =0;
        while (1){
            if(m==2 && d==29)
            {
                sum = (sum+365*4+is_run(y))%7;
                y = y+4;
                if(sum==0 && is_run(y)) break;
            }
            else
            {
                if(m>2)
                {
                    sum = (sum+365+is_run(y+1))%7;
                    y++;
                    if(sum==0) break;
                }
                else
                {
                    sum = (sum+365+is_run(y))%7;
                    y++;
                    if(sum==0) break;
                }
            }
        }
        printf("%d
",y); } return 0; }

 
転載先:https://www.cnblogs.com/Draymonder/p/7353207.html