今天我要ak!!
按照題意直接輸出就好了
#include <stdio.h>
int main()
{
printf("今天我要AK\n");
}
小A的方程題
給出了三個方程式,只要按照題意,直接模擬帶入就行,跟高中的函式套函式差不多,模擬題,注意要保留小數點后三位,對于小數來說,請使用double來提高精確值
#include <stdio.h>
#include <math.h>
int main () {
double x;
scanf("%lf",&x);
double f = 2 * x + 3;
double g = f * f + 2 * f + 6;
double h = sqrt(g + sqrt(f));
printf("%.3lf\n", h);
}
\(a+b \ge c?\)
這里考察的是進制轉換,高中數學應該學過,對于一個非\(十\)進制的數字轉換成\(10\)進制的數字,我們應該用每一位的權重來乘以每一位的數字,然后進行換算,如果不會進制轉換,可以參考一下鏈接
進制轉換
題解中的temp[i]-'0' 是將一個字串數字變成一個number的數字,\(4-3=1\)可以是\(4\)這個數字\(3\)這個數字的距離是\(1\),那么-'0'就相當于到'0'
這個字串的距離,然后就發現,'1'就可以轉化成\(1\)了,因為他到'0'的距離就是\(1\)
#include <stdio.h>
#include <string.h>
#define N 100010
long long c;
char a[N];
char b[N];
//使用long long 防止爆int
long long get(char temp[],int len)
{
long long ans=0;
for(int i=0;i<len;i++)
{
ans=ans*6+(temp[i]-'0');//模擬權重進行運算
}
return ans;
// 比如 123 是六進制,那么十進制應該是1*6^2+ 2*6^1+3*6^0 從1 開始算,其實就是for回圈,
//然后這樣for回圈這樣乘就可以了
}
int main()
{
scanf("%s%s",a,b);
scanf("%lld",&c);
int len1=strlen(a);
int len2=strlen(b);
long long temp=get(a,len1)+get(b,len2);//分別傳入長度和字串,進行求解
if(temp>=c) printf("YES\n");
else printf("NO\n");
}
九九乘法表
模擬,按照題意的直接模擬就可以了,注意這里'\t'的使用
#include <stdio.h>
int main () {
for (int i = 1; i <= 9; i ++ ) {
for (int j = 1; j <= i; j ++ ) {
printf("%d * %d = %d ", i, j, i * j);
}
puts("");
}
}
Arcaea Problem
判斷是什么三角形,高中數學我們學過,當\(a^2+b^2=c^2\)的時候,就是直角三角形,那么也學過\(a^2+b^2>c^2\)是鈍角三角形,反之,是銳角三角形
#include <stdio.h>
#include <math.h>
int main () {
int a, b, c;//讀入
scanf("%d%d%d", &a, &b, &c);
int tmp;
if (a < b) {//這里主要是進行排序,abc要非遞增的順序進行排序
tmp = a;
a = b;
b = tmp;
}
if (a < c) {
tmp = a;
a = c;
c = tmp;
}
int res1 = a * a, res2 = c * c + b * b;
if (res1 > res2) {
puts("FUTURE");
}
else if (res1 < res2) {
puts("PAST");
}
else puts("PRESENT");
}
good number
其實就是求一個數字\(n\)的全部約數,然后進行判斷就可以了
但是這里需要一些數學知識,對于一個數字\(n\),可以直接列舉\(1\)到\(n\)進行判斷是否是\(n\)的約數,但是我們注意到當\(a \times b=n\)的時候,列舉到\(a\)的時候,\(b\)就是\(\frac{n}{a}\)那么這個數字也是\(n\)的約數,同時注意到如果\(a \times a=n\)的時候,\(a\)最大的數字就是\(\sqrt{n}\) 所以說列舉到\(\sqrt{n}\)就可以了,這個就是\(i \times i<=n\) 的約束條件,但是\(i \times i\)在\(i\)很大的時候就會爆\(int\),所以這里我們把\(i\)移動到\(n\)這一旁邊,于是就是\(i \times i \leq n\) \(\to\) \(i \leq \frac{n}{i}\),,同時這里\(\sqrt{n}\)其實是一個約數,所以這里還要帕判斷一下,\(i \ne \frac{n}{i}\)
int main()
{
int n;
scanf("%d", &n);
int sum = 0;
for (int i = 1; i <= n / i; i++)
{
if (n % i == 0)
{
if (i < n) sum += i;
if (i != n / i && n / i < n) sum += n / i;
}
}
if(sum==n) printf("yes\n");
else printf("no\n")
}
簡單求和問題
某位學長出的題,本來還想卡卡long long ,但是后來并沒有卡,這里直接開long long 一相加就可以了
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
long long ans=0;
for(int i=0;i<2*n;i++)
{
long long x;
scanf("%lld",&x);
ans+=x;
}
printf("%lld\n",ans);
}
scz的簡單函式題
題解如圖

#include <stdio.h>
#define N 1000010
long long f[N];//數值很大,要開long long
int main()
{
int n;
scanf("%d",&n);
f[0]=0;
f[1]=1;
for(int i=2;i<=n;i++)
{
if(i%2==0) f[i]=f[i/2];
else f[i]=f[(i-1)/2]+f[i-2];
}
long long ans=0;
for(int i=1;i<=n;i++) ans+=f[i];
printf("%lld\n",ans);
}
llw和mez的不燙手山芋
小型博弈的問題,但是這個可以通過舉例來模擬出來,這里假設就是\(A和B\)一起玩博弈,如果說
\(n=1\)的時候,就是A贏,
\(n==2\)的時候,A贏
\(n==3\)的時候,B贏,因為A不管拿1或者2個,B都可以直接拿完
這里發現當一個數字能夠變成\(3\)的時候,這個時候不管取\(1\)還是\(2\),我們都可以贏,那么如果我們是4,是否我們也是贏了? 以為我們拿\(1\)讓他變成\(3\)這個狀態同理,\(5\)的時候,我們就可以拿2 還是讓讓變成\(3\)這個狀態,但是我們我們是\(6\)的時候,對方都可以變化使我們變成\(3\)這個狀態,然后結果就反過來了,于是我們可以推出:對于\(n \mod 3==0\),A贏,反著,B贏 注意這里題目要求反過來了,反著就可以了.
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n%3==0)
printf("llwloser");
else
printf("llwyyds");
}
hjl在稻妻的奇妙冒險
模擬題,注意點細節就可以了~~
#include<stdio.h>
int main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a==b&&b==c&&c==d)
{
printf("yes");
return 0;
}
else
{
int aa,bb,cc,dd;
//攻擊第一個方塊
aa=a,bb=b,cc=c,dd=d;
aa++;
if(aa>3) aa-=3;
bb++;
if(bb>3) bb-=3;
if(aa==bb&&bb==cc&&cc==dd)
{
printf("yes");
return 0;
}
//2
aa=a,bb=b,cc=c,dd=d;
aa++;
if(aa>3) aa-=3;
bb++;
if(bb>3) bb-=3;
cc++;
if(cc>3) cc-=3;
if(aa==bb&&bb==cc&&cc==dd)
{
printf("yes");
return 0;
}
//3
aa=a,bb=b,cc=c,dd=d;
dd++;
if(dd>3) dd-=3;
bb++;
if(bb>3) bb-=3;
cc++;
if(cc>3) cc-=3;
if(aa==bb&&bb==cc&&cc==dd)
{
printf("yes");
return 0;
}
//4
aa=a,bb=b,cc=c,dd=d;
dd++;
if(dd>3) dd-=3;
cc++;
if(cc>3) cc-=3;
if(aa==bb&&bb==cc&&cc==dd)
{
printf("yes");
return 0;
}
}
printf("no");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/506140.html
標籤:其他
