mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
Create 1794.cpp
This commit is contained in:
parent
4011a1f2d1
commit
173ceb2822
68
HDOJ/1794.cpp
Normal file
68
HDOJ/1794.cpp
Normal file
|
@ -0,0 +1,68 @@
|
|||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
using namespace std;
|
||||
|
||||
int mp[31][31];
|
||||
|
||||
int main()
|
||||
{
|
||||
int t;
|
||||
scanf("%d",&t);
|
||||
while(t--)
|
||||
{
|
||||
int n;
|
||||
scanf("%d",&n);
|
||||
vector<int> zerocntvec;
|
||||
int zerocnt=0;
|
||||
for(int i=0;i<n;i++)
|
||||
{
|
||||
for(int j=0;j<n;j++)
|
||||
{
|
||||
scanf("%d",&mp[i][j]);
|
||||
if(mp[i][j]==0)
|
||||
{
|
||||
++zerocnt;
|
||||
int cnt=1;
|
||||
for(int sz=2;sz<=n;sz++)
|
||||
{
|
||||
for(int line=0;line<sz;line++)
|
||||
{
|
||||
for(int col=0;col<sz;col++)
|
||||
{
|
||||
/// 求这个方框的左上角和右下角
|
||||
int luline=i-line;
|
||||
int lucol=j-col;
|
||||
int rdline=i+sz-line-1;
|
||||
int rdcol=j+sz-col-1;
|
||||
if(luline>=0&&lucol>=0&&rdline<n&&rdcol<n) ++cnt;
|
||||
}
|
||||
}
|
||||
}
|
||||
zerocntvec.push_back(cnt);
|
||||
}
|
||||
}
|
||||
}
|
||||
int m;
|
||||
scanf("%d",&m);
|
||||
vector<int> fillvec;
|
||||
for(int i=0;i<m;i++)
|
||||
{
|
||||
int x;
|
||||
scanf("%d",&x);
|
||||
fillvec.push_back(x);
|
||||
}
|
||||
sort(zerocntvec.begin(),zerocntvec.end(),greater<int>());
|
||||
sort(fillvec.begin(),fillvec.end(),greater<int>());
|
||||
long long ans=0;
|
||||
for(int i=0;i<zerocnt;i++)
|
||||
{
|
||||
ans+=zerocntvec[i]*fillvec[i];
|
||||
}
|
||||
printf("%lld\n",ans);
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user