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)