Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:分享本人写的猥琐代码。。。

Posted by OSJake at 2013-03-27 20:28:29 on Problem 1088
In Reply To:分享本人写的猥琐代码。。。 Posted by:euloanty at 2012-07-22 20:58:13
> #include<stdint.h>
> #include<iostream>
> #include<utility>
> #include<vector>
> #include<functional>
> #include<algorithm>
> 
> std::size_t dp[102][102]={},rd[102][102]={};
> 
> int main()
> {
> 	std::ios::sync_with_stdio(false);
> 	std::vector<std::pair<uint32_t,std::pair<std::size_t,std::size_t> > > vec;
> 	std::size_t r,c;
> 	std::cin>>r>>c;
> 	vec.reserve(r*c+3);
> 	for(std::size_t i(1);i<=r;++i)
> 		for(std::size_t j(1);j<=c;++j)
> 		{
> 			std::cin>>rd[i][j];
> 			vec.push_back(std::make_pair(rd[i][j],std::make_pair(i,j)));
> 		}
> 	std::sort(vec.begin(),vec.end(),std::greater<std::pair<uint32_t,std::pair<std::size_t,std::size_t> > >());
> 	uint32_t max(0);
> 	for(std::vector<std::pair<uint32_t,std::pair<std::size_t,std::size_t> > >::iterator iter(vec.begin());iter!=vec.end();++iter)
> 	{
> 		if(rd[iter->second.first][iter->second.second]<rd[iter->second.first-1][iter->second.second])
> 			dp[iter->second.first][iter->second.second]=dp[iter->second.first-1][iter->second.second]+1;
> 		if(rd[iter->second.first][iter->second.second]<rd[iter->second.first+1][iter->second.second]&&dp[iter->second.first][iter->second.second]<dp[iter->second.first+1][iter->second.second]+1)
> 			dp[iter->second.first][iter->second.second]=dp[iter->second.first+1][iter->second.second]+1;
> 		if(rd[iter->second.first][iter->second.second]<rd[iter->second.first][iter->second.second-1]&&dp[iter->second.first][iter->second.second]<dp[iter->second.first][iter->second.second-1]+1)
> 			dp[iter->second.first][iter->second.second]=dp[iter->second.first][iter->second.second-1]+1;
> 		if(rd[iter->second.first][iter->second.second]<rd[iter->second.first][iter->second.second+1]&&dp[iter->second.first][iter->second.second]<dp[iter->second.first][iter->second.second+1]+1)
> 			dp[iter->second.first][iter->second.second]=dp[iter->second.first][iter->second.second+1]+1;
> 		if(max<dp[iter->second.first][iter->second.second])
> 			max=dp[iter->second.first][iter->second.second];
> 	}
> 	std::cout<<max+1<<std::endl;
> 	return 0;
> }
果然很猥琐

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator