[编程题]游游的you
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int q;
cin>>q;
int a,b,c;
int ans=0;
while(q--)
{
cin>>a>>b>>c;
int x=min(a,min(b,c));
int o=b-x;
if(o>0) ans=x*2+o-1;
else ans=x*2;
cout<<ans<<endl;
}
return 0;
}
NC398 腐烂的苹果
class Solution {
int n,m;
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};
bool vis[1005][1005];
typedef pair<int,int> PII ;
public:
int rotApple(vector<vector<int> >& grid) {
m=grid.size(),n=grid[0].size(); // 交换 m 和 n
queue<PII> q;
for(int i=0;i<m;i++) // 先遍历行
{
for(int j=0;j<n;j++) // 再遍历列
{
if(grid[i][j]==2) q.push({i,j});
}
}
int ans=0;//标记扩展多少层,也就是多少分钟
while(q.size())
{
int sz=q.size();
ans++;
while(sz--)
{
auto [a,b]=q.front();
q.pop();
for(int k=0;k<4;k++)
{
int x=a+dx[k],y=b+dy[k];
if(x>=0 && x<m && y>=0 && y<n && grid[x][y]==1 && !vis[x][y])
{
vis[x][y]=true;
q.push({x,y});
}
}
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(grid[i][j]==1 && !vis[i][j]) return -1;
}
}
return ans-1;
}
};
JZ62 孩子们的游戏(圆圈中最后剩下的数)
class Solution {
public:
int LastRemaining_Solution(int n, int m) {
int f = 0;
for(int i = 2; i <= n; i++) f = (f + m) % i;
return f;
}
};