1. 程式人生 > >2017百毒之星第一場

2017百毒之星第一場

A題
答案為p^n mod b = 1的個數,就是d(p-1)

#include <iostream>
#include <bits/stdc++.h>
#define ll long long
using namespace std;

int main()
{
    int T;
    scanf("%d",&T);
    ll n;
    while (T--)
    {
       scanf("%lld",&n);
       n--;
       ll res=0;
       for (int i=1;i*i<=n;i++)
       if
(n % i == 0 ) { res++; if (i * i !=n) res++; } printf("%lld\n",res); } return 0; }

E題
隨便暴一下

#include <iostream>
#include <bits/stdc++.h>
#define ll long long
using namespace std;


int calc(int y, int m,int d)
{
    if (!( ((y % 4== 0) && (y
% 100!=0)) | y % 400==0 ) && (m==2 && d==29)) return -1; if(m==1||m==2) m+=12,y--; int iWeek = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; return iWeek; } int y,m,d; void solve() { scanf("%d-%d-%d",&y,&m,&d); int wk=calc(y,m,d); int res=y+1; while ( calc(res,m,d) !=wk ) res++; printf
("%d\n",res); } int main() { int T; scanf("%d",&T); while (T--) solve(); return 0; }

F題
先搜1,再從(0,0)開始把外圍的0填充為1,再搜一下0有幾塊

#include <iostream>
#include <bits/stdc++.h>
#include <queue>
#define clr(x,y) memset(x,y,sizeof x)
using namespace std;

int mp[110][110],vis[110][110];
char s[123];
int n,m;
struct Node
{
    int x,y;
    Node (int _x,int _y)
    {
        x=_x;
        y=_y;
    }
};
const int dir[4][2]= {0,1,0,-1,1,0,-1,0};
void bfs(Node st,int type)
{
    queue<Node> q;
    q.push(st);
    vis[st.x][st.y]=1;
    while (!q.empty())
    {
        Node now=q.front();
        q.pop();
        for (int i=0; i<4; i++)
        {
            int tx=now.x+dir[i][0];
            int ty=now.y+dir[i][1];
            if (tx<0 || ty<0 || tx>n+1 || ty>m+1 ) continue;
            if (mp[tx][ty] == type && vis[tx][ty]==0)
            {
                vis[tx][ty] = 1;
                if (type == 0) mp[tx][ty] = 1;
                q.push(Node(tx,ty));
            }
        }
    }
}

int main()
{
    while (scanf("%d%d",&n,&m)!=EOF)
    {
        clr(mp,0);
        clr(vis,0);
        int tot=0;
        for (int i=1; i<=n; i++)
        {
            scanf("%s",s+1);
            for (int j=1; j<=m; j++)
                mp[i][j]=s[j] - '0',tot+=(s[j]=='1');
        }
        tot = (n+1) * (m+1) - tot;
        int one=0;
        for (int i=1; i<=n; i++)
            for (int j=1; j<=m; j++)
                if (mp[i][j] == 1 && vis[i][j]==0)
                    bfs(Node(i,j),1),one++;
        bfs(Node(0,0),0);
        if (one!=1) printf("-1\n");
        else
        {
            int zero=0;
            for (int i=1; i<=n; i++)
                for(int j=1; j<=m; j++)
                    if (mp[i][j] == 0) bfs(Node(i,j),0), zero++; 
            if (zero==1) printf("0\n");
            if (zero==0) printf("1\n");
            if (zero>=2) printf("-1\n");
        }
    }
    return 0;
}

相關推薦

2017第一

A題 答案為p^n mod b = 1的個數,就是d(p-1) #include <iostream> #include <bits/stdc++.h> #define ll

2017資格賽 1003:度度熊與邪惡大魔王(DP)

solution nav normal ner 就會 預處理 display badge rate 度度熊與邪惡大魔王 Accepts: 3021 Submissions: 18787 Time Limit: 2000/1000 MS (Java/Ot

2017資格賽 1003 度度熊與邪惡大魔王 背包DP

log accep 防禦 ssi str 完全背包 time 怪物 amp 度度熊與邪惡大魔王 Accepts: 3027 Submissions: 18837 Time Limit: 2000/1000 MS (Java/Others) Memor

度度熊的午飯時光 2017資格賽 -.-

set others spa 字典序 info iostream 最小 long long 預算 度度熊的午飯時光 Accepts: 755 Submissions: 8737 Time Limit: 2000/1000 MS (Java/Others)

2017 資格賽 題解

真心 數據 targe 比較 blog png 防禦 href 普通 百度之星 2017 資格賽 題解(原創)(2~5題 第一題方法是錯的 第二題數據太水 並不會正解) 轉載請註明出處http://www.cnblogs.com/nflslzt/p/7302377.html

2017初賽A 今夕何夕

ucc others rdquo while main cli for 表示 script 今夕何夕 Accepts: 1345 Submissions: 5533 Time Limit: 2000/1000 MS (Java/Others)

2017初賽A 度度熊的01世界

content scanf output bar imp boa 世界 clock other 度度熊的01世界 Accepts: 967 Submissions: 3064 Time Limit: 2000/1000 MS (Java/Ot

2017初賽B Chess

tput long put 它的 ucc others style info 同一行 Chess Accepts: 1805 Submissions: 5738 Time Limit: 2000/1000 MS (Java/Others)

HDU 6119 2017初賽B 小小粉絲度度熊 (二分)

端點 mission make miss 情況 others sin time 天都 小小粉絲度度熊 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To

(最小費用流)hdu 6118(2017初賽B 1005) 度度熊的交易計劃

ios rsh des pty rank tom mis 註意 pan 度度熊的交易計劃 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su

2017初賽(A)1001,1005,1006解題報告

百度 src cout lose 初賽 bool amp spa span 1001 小C的倍數問題 純簽到題,求p-1的因數個數,暴力枚舉即可 1 #include<bits/stdc++.h> 2 using namespace std; 3 in

2017資格賽題解

度度熊為了拯救可愛的公主,於是與邪惡大魔王戰鬥起來。 邪惡大魔王的麾下有n個怪獸,每個怪獸有a[i]的生命值,以及b[i]的防禦力。 度度熊一共擁有m種攻擊方式,第i種攻擊方式,需要消耗k[i]的晶石,造成p[i]點傷害。 當然,如果度度熊使用第i個技能打在第j個怪獸上面的話,會使得第j個怪獸的生命值減少p

2017""程式設計大賽

【中文題意】 小小粉絲度度熊 Accepts: 1075 Submissions: 5191 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth

hdu6082 2017""資格賽1003 度度熊與邪惡大魔王(完全揹包dp)

度度熊與邪惡大魔王Accepts: 3135 Submissions: 19439 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Prob

度度熊與邪惡大魔王(2017""程式設計大賽

度度熊為了拯救可愛的公主,於是與邪惡大魔王戰鬥起來。 邪惡大魔王的麾下有n個怪獸,每個怪獸有a[i]的生命值,以及b[i]的防禦力。 度度熊一共擁有m種攻擊方式,第i種攻擊方式,需要消耗k[i]的晶石,造成p[i]點傷害。 當然,如果度度熊使用第i個技能打在第j個怪獸上面的話,會使得第j個怪獸的生命值減少p

2017資格賽(A)1005 今夕何夕(日期計算)

題目中文,不再詳述題意 思路:簡單的日期計算,基礎題。自己這個寫法分類討論多一些,細節多,偏於繁瑣,容易出錯,聽人討論說,有比較簡潔的演算法,感興趣的小夥伴可以上網搜一搜。 // 今夕何夕.cpp 執行/限制:15ms/1000ms #include <cstdio

2017資格賽 1003 度度熊與邪惡大魔王(完全揹包)

度度熊為了拯救可愛的公主,於是與邪惡大魔王戰鬥起來。 邪惡大魔王的麾下有n個怪獸,每個怪獸有a[i]的生命值,以及b[i]的防禦力。 度度熊一共擁有m種攻擊方式,第i種攻擊方式,需要消耗k[i]的晶石,造成p[i]點傷害。 當然,如果度度熊使用第i個技能打在第j個怪獸上面的話,會使得第j個怪獸的生命值減少p

2017-1003-度度熊與邪惡大魔王(完全揹包)

度度熊為了拯救可愛的公主,於是與邪惡大魔王戰鬥起來。 邪惡大魔王的麾下有n個怪獸,每個怪獸有a[i]的生命值,以及b[i]的防禦力。 度度熊一共擁有m種攻擊方式,第i種攻擊方式,需要消耗k[i]的晶石,造成p[i]點傷害。 當然,如果度度熊使用第i個技能打在第j個怪獸上面的話,會使得第j個怪獸的生命值減少p

hdu6083 2017""資格賽1004 度度熊的午飯時光(揹包dp+記錄路徑)

01揹包+記錄路徑。還要保證最大得分相等時輸出序號和最小的,序號和也相等時輸出字典序最小的。path[i][j]表示用第i件物品,可以恰好達到j花費。回溯時,i從大到小遇到的第一個能達到j的一定是最優的那一個。 #include <cstdio>

2017 資格賽1003度度熊與邪惡大魔王

1003度度熊與邪惡大魔王 Accepts: 1503 Submissions: 9026 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)