題目:
題目大意:
有n頭牛,每頭牛有k個屬性,以及它們在每個屬性的排名,求有多少對牛,使其中一頭牛的每個屬性排名都高於另外一頭牛
題目分析:
因為n、k很小,直接暴力列舉
**
#include
using
namespace std;
int n,k;
struct cow
cow[50]
;bool
check
(int x,
int y)
intmain()
int ans =0;
for(
int i =
1; i <= n;i++
)for
(int j =
1; j <= n;j++)if
(i!=j&&
check
(i,j)
) ans ++
; cout << ans;
return0;
}
題目大意:
求第n個能被3或5整除的正整數。
題目分析:
顯然能被3或5整除的數是以15為乙個週期分布的。
**:
#include
using
namespace std;
typedef
long
long ll;
ll n;
intmain()
; ans = ans + d[n%8]
;if(n %8==
0)cout<<
(n/8)*
15-1;
else cout << ans;
return0;
}
題目大意:
給你乙個只有m個小寫字母的字串ch(a=1,b=2,…,z=26),長度為n,給出修改i為j的代價a[i][j],要求你修改該字串,使得對於任意i,x,y(0<=x=k(ch[0]=ch[n+1]=0)。
題目分析
首先需要求把i修改為j的最小代價,這個可以用floyd演算法直接求出
然後因為涉及到最優子結構,想到了動規。
不難想出若定義f[i][j]為對於前i個字母的字串,修改後第i個字母為j的最小代價。而狀態轉移的大概思路就是對於第i個字母,有兩個選擇:
1.開闢一段新的字母:f[i][j] = min( f[i-k][t] + a[ch[i-k+1]][j]+a[ch[i-k+2]][j]+…+a[ch[i]][j] )(1<=t<=m)
2.跟隨上乙個字母:f[i][j] = f[i-1][j] + a[ch[i]][j];
而這種時間複雜度為o(mn2)顯然不能接受
而對於o(n)操作: a[ch[i-k+1]][j]+a[ch[i-k+2]][j]+…+a[ch[i]][j] 顯然可以用字首和陣列s[i][j] (前i個字母全部修改為j的代價)來優化變為o(1)
最後時間複雜度就為o(mn)了
**
#include
using
namespace std;
typedef
long
long ll;
const
int n =
1e5+
10, m =40;
ll a[m]
[m],s[n]
[m],m,n,k,f[n]
[m];
char ch[n]
;int
main()
ll ans =-1
;for
(int i =
1; i <= m; i ++)if
(ans==-1
||ans>f[n]
[i])ans = f[n]
[i];
cout << ans;
return0;
}
題目大意:
有8頭牛排成一列,給定一些如a牛必須在b牛旁的限制,求字典序最小的排列
題目解析:
因為牛很少,所以直接dfs一波就過了
**
#include
using
namespace std;
typedef
long
long ll;
ll n;
string cow[8]
=;int a[8]
=;int lim[
100][2
],ans[10]
;bool st[10]
;void
dfs(
int now,
bool
&flag)
for(
int i =
0; i <8&&
!flag; i ++)if
(!st[i]
&&flag ==
false)}
intmain()
}bool flag =
false
;dfs(0
,flag)
;for
(int i =
0; i <
8; i ++
)for
(int j =
0; j <
8; j++)if
(ans[j]
==i)cout << cow[j]
<< endl;
return0;
}
題目大意:
給你乙個由大寫字母組成的字串,求最小k,使得在任何連續k個字母中能唯一確定這k個字母的位置
題目分析:
暴力列舉k!!!
**
#include
using
namespace std;
char s[
110]
;int n;
bool
check
(int x,
int y,
int k)
intmain()
}}
排位賽一 E Milk Visits
farmer john 計畫建造 n 個農場,用 n 1 條道路連線,構成一棵樹 也就是說,所有農場之間都互相可以到達,並且沒有環 每個農場有一頭奶牛,品種為更賽牛或荷斯坦牛之一。farmer john 的 m 個朋友經常前來拜訪他。在朋友 i 拜訪之時,farmer john 會與他的朋友沿著從農...
排位賽題解
十進位制轉二進位制,右移 與 運算結合,遍歷每個數字在二進位制下點每一位。include intmain for int i 0 i 4 i for int i 0 i 4 i a i 1 右移除2 printf d d d d n num 0 num 1 num 2 num 3 return0 題...
排位賽二G Bucket Brigade
給定乙個10x10的地圖,b是倉庫,l是湖泊,是路,r是石頭 石頭不能走 現在倉庫著火了,母牛哥要去救火了,求倉庫到湖泊的最小步數 倉庫和湖泊不算入步數 bfs模板題。include include include include include include using namespace st...