40min補完了這三題。。
然後後面2道題,小茫然。等高數考完再補吧。。
Machine
想想就知道是三進制,但是題解的方法更簡單,我弱弱的方法也過了。。
#include
#include
#include
#include
using namespace std;
string test;
int main()
{
long long T;
scanf("%I64d",&T);
while(T--)
{
long long num,change;
scanf("%I64d%I64d",&num,&change);
test.clear();
while(change)
{
if(change%3==0)
{
test=test+'0';
}
else if(change%3==1)
{
test=test+'1';
}
else
{
test=test+'2';
}
change=change/3;
}
long long len=test.size();
//cout<num)
{
len--;
//cout<
B 簡單的模擬。。
題解的方法似乎比我少開2個數組,膜拜。。
#include
#include
#include
using namespace std;
const int MAXN=10010;
int whon[MAXN];
int whom[MAXN];
int way[MAXN][MAXN];
int flagn[MAXN];
int flagm[MAXN];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,m,num;
scanf("%d%d%d",&n,&m,&num);
for(int i=1;i<=n;i++)
{
whon[i]=i;
}
for(int j=1;j<=m;j++)
{
whom[j]=j;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
scanf("%d",&way[i][j]);
}
}
memset(flagm,0,sizeof(flagm));
memset(flagn,0,sizeof(flagn));
int a,how,b;
while(num--)
{
scanf("%d%d%d",&how,&a,&b);
if(how==1)
{
int t=whon[a];
whon[a]=whon[b];
whon[b]=t;
}
else if(how==2)
{
int t=whom[a];
whom[a]=whom[b];
whom[b]=t;
}
else if(how==3)
{
flagn[whon[a]]=flagn[whon[a]]+b;
}
else if(how==4)
{
flagm[whom[a]]=flagm[whom[a]]+b;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
printf("%d",way[whon[i]][whom[j]]+flagn[whon[i]]+flagm[whom[j]]);
if(j==m)
{
printf("\n");
}
else
{
printf(" ");
}
}
}
}
return 0;
}
C 前後2個指針走一下就好了,網上似乎把這東西叫做尺取法。。(為何有種還是模擬的感覺),數組開小居然是超時也是醉了。。於是一直在自己寫的,和別人的,實質一樣的,寫法不一樣的地方糾結。。。map慢好多,要880+ms。。但是一旦變成 減‘a’,就是200ms了。。
#include
#include
#include
#include