cf:
https://codeforces.com/contest/1809/problem/A
思路:
只有四个数,可以直接暴力打表,分为四个数都一样,3个数一样,2组2个数一样,2个数一样,另外俩个数不一样,四个数都不一样,6种情况,纸上模拟出6种情况分别的答案即可
#include<iostream>
#include<set>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
char tmp;
int mir[10]={0};
for(int i=0;i<4;i++)
{
cin>>tmp;
tmp-='0';
int k=tmp;
mir[k]++;
}
int cnt1=0,cnt2=0,cnt3=0,cnt4=0;
for(int i=0;i<10;i++)
{
if(mir[i]==1)
{
cnt1++;
}
if(mir[i]==2)
{
cnt2++;
}
if(mir[i]==3)
{
cnt3++;
}
if(mir[i]==4)
{
cnt4++;
}
}
if(cnt4==1)//4个数一样
{
cout<<-1<<endl;
}
if(cnt3==1)//3个数一样
{
cout<<6<<endl;
}
if(cnt2==2)//2个数一样
{
cout<<4<<endl;
}
if(cnt1==2&&cnt2==1)//
{
cout<<4<<endl;
}
if(cnt1==4)
{
cout<<4<<endl;
}
}
}
https://codeforces.com/contest/1809/problem/B
思路:纸上模拟得出结论根号下n-1
上图中,红色标记的点即为满足条件的位置,可以知道点数为1为0,2~4为1,5~9为2,10~16为3;由数学归纳法可以得证
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
long long n;
cin>>n;
long long ans=sqrt(n-1);
cout<<ans<<endl;
}
}
JAVA学习:
笔记详情:
java学习总结:3月26日的答辩认识到了自己的学习方法有问题,改进:多看书,做笔记,多敲代码。
总结:退出了算法组,进入了项目组,没有算法组的任务之后,不能懈怠,认真学习好JAVA。