poj3617
給定長度為n的字串s,要構造乙個長度為n的字串t。期初,t是乙個空串。然後以下操作:
目標是要使構造的字典序盡可能小。
#include
#include
#include
using
namespace
std;
const
int maxn = 2010;
char s[maxn];
char s2[maxn];
char ans[maxn];
int n;
intstrcmp(const
char *src,const
char *dst,int i,int j)
return
0; }
int main()
//coutint i,j,index = 0;
for(i = 0,j = 0; i < n && j < n && index < n;index ++)
else
}j = 1;
for(int i = 0; i < n ;i ++)
else
#include
#include
#include
using
namespace
std;
const
int maxn = 1010;
int a[maxn];
int main()
}//完全覆蓋了
if(z == n)
i = n;
break;}}
if(j == n)
}printf("%d\n",ans);
}return
0; }
#include
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
int main()
it1 = s.begin();
it2 = ++it1;
it1--;
while(s.size() > 1)
printf("%lld",ans);
return
0; }
描述有 n 堆紙牌,編號分別為 1,2,…, n。每堆上有若干張,但紙牌總數必為 n 的倍數。可以在任一堆上取若於張紙牌,然後移動。
移牌規則為:在編號為 1 堆上取的紙牌,只能移到編號為 2 的堆上;在編號為 n 的堆上取的紙牌,只能移到編號為 n-1 的堆上;其他堆上取的紙牌,可以移到相鄰左邊或右邊的堆上。
現在要求找出一種移動方法,用最少的移動次數使每堆上紙牌數都一樣多。
例如 n=4,4 堆紙牌數分別為:
① 9 ② 8 ③ 17 ④ 6
移動3次可達到目的:
從 ③ 取 4 張牌放到 ④ (9 8 13 10) -> 從 ③ 取 3 張牌放到 ②(9 11 10 10)-> 從 ② 取 1 張牌放到①(10 10 10 10)。
格式 輸入格式
n(n 堆紙牌,1 <= n <= 100)
a1 a2 … an (n 堆紙牌,每堆紙牌初始數,l<= ai <=10000)
輸出格式
所有堆均達到相等時的最少移動次數。
樣例1
樣例輸入1
4
9 8 17 6
樣例輸出1
3
#include
#include
using
namespace
std;
int main()
//求平均值 因為是倍數 所以一定是整數
int junzhi = sum / n;
int ans = 0;
for(int i = 0;i < n ;i ++)
printf("%d\n",ans);
return
0; }
作用域例題集
題1 functiona var a 123 b var glob 100 a 預編譯狀態 a函式被定義時,發生如下過程 a defined a.scope 0 go程式執行狀態 a函式被執行時,發生如下過程 a handle a.scope 0 aao1 go的引用 b函式被定義時,發生如下過程 ...
並查集例題
題目描述 假如已知有n個人和m對好友關係 存於集合r 如果兩個人是直接或間接的好友 好友的好友的好友 則認為他們屬於同乙個朋友圈。請寫程式求出這n個人裡一共有多少個朋友圈。輸入 輸入包含多個測試用例,每個測試用例的第一行包含兩個正整數 n m,1 n,m 100000。接下來有m行,每行分別輸入兩個...
並查集例題
找出根節點,如果只有乙個節點,根節點是自己 作迴圈,如果父節點不是自己,一直迴圈 public int find int x return x public void union int x,int y parent rootx rooty count 並查集自己的理解 剛開始每個節點都是看作單獨的...