c題 蛇形填數
答案:761
**:簡潔
#include#includee題 七段碼#include
using
namespace
std;
const
int maxn = 50
;int
a[maxn][maxn];
intmain()
}else
}k++;
}cout
<20][20]<
return0;
}
思路:並查集+bfs
return :強行終止函式繼續執行下去
答案:80
**:
#include#include#include
using
namespace
std;
const
int maxn = 25
;int
map[maxn][maxn];
int ans = 0
;int
visit[maxn];
intfather[maxn];
void
init()
int find(intx)}
void dfs(int
d) }}}
int k=0
;
for(int i=1;i<=7;i++)
if(visit[i]&&father[i]==i) k++;
if(k==1) ans++;
return ;//
這裡必須要
思路:**:
#include#includei 平面切分#include
#include
using
namespace
std;
const
int maxn = 2e5+10
;typedef
long
long
ll;char
a[maxn];
int id[27][maxn],nu[27],b[27
];ll ans;
intmain()
for(int i=1;i<=len;i++)
}sort(b+1,b+top+1
);
int last =i;
for(int j=2;j<=top;j++)
ans+=(len-last+1)*top;
}cout
return0;
}
set去重
思路:思路:
在同一平面內,如果新增的每一條直線互不相交,則每新增一條直線,就會增加乙個平面;當新增一條直線時,這條直線與當前平面內已有直線每產生乙個不同位置的交點時,這條直線對平面總數量的貢獻會額外增多乙個,記為si,則si的值為經過這條直線的點+1,1為直線自身貢獻的平面,結果為每一條直線的貢獻加上最開始的乙個平面,結果為s1到sk的和,k為所有不重合直線的數量,再加上1.
所以我們可以在每新增一條直線時設定乙個空的set,將直線與當前平面內其他直線的交點的xy座標存入set中,如果這一條直線不是重邊,則這條直線的貢獻為set.size()+1,即ans為所有直線的貢獻加上原來的乙個平面.
時間複雜度:o(n
2*log
2n)**:
#include#include#include
using
namespace
std;
typedef
long
long
ll;pair
p;bool st[1010
];double s[1010][2
];ll ans;
intmain()
else
continue
; }
p.first = (s[j][1]-s[i][1])/(s[i][0]-s[j][0
]); p.second = (s[j][1]*s[i][0]-s[i][1]*s[j][0])/(s[i][0]-s[j][0
]); t.insert(p);
}if(!st[i]) ans+=t.size()+1
; }
cout
<1
<
return0;
}
2020浙江省省賽 B
傳送門 輸入n,k分別表示n個a i 體積物品,箱子最大容量為k,求第一種操作和第二種操作需要多少個箱子。有兩種操作,第一種操作是從1 i 1之間有沒有可以放下第i個物體體積的箱子,箱子編號越前面越好 第二種操作1 i 1之間有沒有可以放下第i個物體體積的箱子,使得箱子數最少。第二種操作很好想直接l...
2020藍橋杯訓練賽 二
1 9的數字可以組成3個3位數,設為 a,b,c,現在要求滿足如下關係 b 2 a c 3 a 請你寫出a的所有可能答案,數字間用空格分開,數字按公升序排列。注意 只提交a的值,嚴格按照格式要求輸出。列舉遍歷,滿足要求的a只會在123 333範圍內,只要檢查一下a情況下,b,c是否全部符合題意,這裡...
2020藍橋杯校內模擬賽題解
第二題 問題描述 在1至2019中,有多少個數的數字中包含數字9?注意,有的數中的數字包含多個9,這個數隻算一次。例如,1999這個數包含數字9,在計算只是算乙個數。include using namespace std intmain cout count endl cout ending.end...