題目來自naipc2018
d題:missing gnomes
直接模擬
1 #include2view code3using
namespace
std;
4 typedef long
long
ll;5
bool check[100050];6
int uncheck[100050];7
int op[100050];8
int ans[100050];9
intmain()
1020
int k=1;21
for(int i=1;i<=n;i++)
2227
}28 k=1;29
for(int i=1;i<=m;i++)
3038
}39 printf("
%d\n
",op[i]);40}
41for(;k<=n-m;k++)
4245}46
return0;
47 }
h題:recovery
輸入兩個字串s,t分別代表行和列的狀態(規定行或列中 1的個數為奇數 對應的是1,1的個數為偶數 對應的是0),求還原後的方陣。題目給出了兩個條件:1、要求1的數量盡可能多;2、一次把每行接到上一行的後面,在條件1的前提下,使得銜接後的二進位制數值最小(即讓0盡量靠前)
如果行和列中1的個數奇偶性不同,直接輸出-1。對於可以還原的,先把可以需要放0的行和列存下來(記需要放0的行數為rr,列數為cc)。如果rr>=cc,首先在需要放0的行中按從小到大的順序找到( rr-cc )個行把這些行的第乙個變為0;其次對於剩下的行,按列從小到大的順序相應的都變為0,其餘的都為1。如果rr
1 #include2view codeusing
namespace
std;
3int mp[60][60],a[60],b[60],aa[60],bb[60];4
char s[60],t[60];5
intmain()621
else
24 rr+=a[i];25}
26for(int i=0;i)
2731
else
34 cc+=b[i];35}
36if((rr+cc)&1)37
41for(int i=0;i)
42for(int j=0;j)
43 mp[i][j]=1;44
if(cnt1<=cnt2)
4551
else
5258
for(int i=0;i)
5964}65
return0;
66}67
UPC2018組隊訓練賽第十二場
1 include2 using namespace std 3char str 100050 4 typedef long long ll 5 intmain 622 else 2327 28 printf lld n ans 29 30return0 31 view code 訓練賽時想到的思路...
UPC2018組隊訓練賽第十場
直接按照題意寫 1 include 2 3using namespace std 4bool cmp int x,inty 5 8int n,m,a 1005 9 intmain 1025 return0 26 view code 輸入的兩個字串相同輸出 identical 如果只有乙個雙引號裡面的...
NOIP 2018訓練賽第四場
給乙個 n 行 t 列的矩陣,矩陣第 i 行第 j 列的元素是 i j。定義矩陣第 i 行的積為第 i 行所有元素的乘積。現在要你求矩陣所有行的積的和。答案可能很大,所以 mod 1000000007輸出。100 1 t 10000 1 n 1e10,1 t 1000 也就是求 你開啟了某著名 oj...