我懺悔,出生沒帶眼睛,看錯題了。
t1把求模數理解成了求出模之後的結果。
樣例一直沒過,卡了一小時,直到我開始檢查我的模數是不是正確的時候
才發現我題讀錯了然後腦子就反應不過來了,就直接我不知道怎麼做了。
之後讀t2的時候,以為是乙個普通的字串問題做少了,就直接開始寫
結果錯了。。。。t3大模擬碰到就廢打了一半,時間到了。。。
懺悔啊,沒臉啊!!!
好了,懺悔過了,之後該反省了。(先來題解)
正常讀了題就應該知道,這是個找規律。
當k =0
k = 0
k=0時,
如果查詢的是乙個質數就直接輸出2
22,否則就輸出除一之外最小的因數
當k =1
k = 1
k=1時,
就輸出x/2
x / 2
x/2向下取整 +++1
11。
#include
#include
#include
using
namespace std;
bool flag;
intmain()
if(flag)
else
}else
if(k ==1)
}}return0;
}
啊啊啊啊啊啊~怎麼會看錯題啊!!!!
這個關鍵就是在於四種操作中的其中任意一種
操作之後就是要存一下答案,之後再輸出。
那四種操作,就是按題面上的寫就行了。。。
我神秘打爆。。不知道為什麼。。。
還有最開始不是已經說了省略行末空格和回車嗎,那為什麼還會有
行末不許有多餘空格啊???
#include
#include
#include
using
namespace std;
const
int range =
1e5+5;
char s[15]
;int op[range]
;int
main()
else
if(s[1]
=='u')}
else
if(s[0]
=='b'
) op[i]
= cnt;
}for
(int i =
1; i <= n; i++
)return0;
}
又是一道題目都一樣的模擬,好像在**做過,但是因為沒有太多時間
寫了一部分就交上去了。然後因為有乙個沒打句號,然後(懂的都懂)
然後在oj上測了之後只有60pt
s60pts
60pt
s,然後我又發現,我**題又沒讀完整
結果要特判一下當手牌非14的時候直接跳出迴圈。。我。。真的很無語。
之後就按照題目要求來打。
乙個建議:
以後碰到這種題目講了很多東西,把沒關係的和有關係的混在一起的時候,可以把你覺得
有用處的地方勾畫一下,打個標註,這樣就不會漏條件,前提是你得讀完題,且讀懂了題
60pts
#include
#include
#include
using
namespace std;
const
int range =15;
char s[5]
;int num[range]
[range]
;void
init()
}}intmain()
else
if(s[0]
=='s'
)else
if(s[0]
=='w'
)else
if(s[0]
=='n'
)else
if(s[0]
=='b'
)else
if(s[0]
=='f'
)else
if(s[0]
=='z'
)else
if(s[0]
>=
'1'&& s[0]
<=
'9')
else
if(s[1]
=='p'
)else
if(s[1]
=='m')}
}if(num[1]
[1]>=
1&& num[2]
[1]>=
1&& num[3]
[1]>=
1&& num[1]
[9]>=
1&& num[2]
[9]>=
1&& num[3]
[9]>=
1&& e >=
1&& s >=
1&& w >=
1&& n >=
1&& b >=
1&& f >=
1&& z >=1)
int cnt =0;
if(e ==2)
if(s ==2)
if(w ==2)
if(n ==2)
if(b ==2)
if(f ==2)
if(z ==2)
for(
int i =
1; i <=
3; i++)}
}if(cnt ==7)
bool flag =
false
;for
(int i =
1; i <=
3; i++)}
if(flag)
else
}return0;
}
code
#include
#include
#include
using
namespace std;
const
int range =15;
char s[5]
;int num[range]
[range]
;int cnt =
0, t;
void
init()
}}intmain()
else
if(s[0]
=='s'
)else
if(s[0]
=='w'
)else
if(s[0]
=='n'
)else
if(s[0]
=='b'
)else
if(s[0]
=='f'
)else
if(s[0]
=='z'
)else
if(s[0]
>=
'1'&& s[0]
<=
'9')
else
if(s[1]
=='p'
)else
if(s[1]
=='m')}
}if(num[1]
[1]>=
1&& num[2]
[1]>=
1&& num[3]
[1]>=
1&& num[1]
[9]>=
1&& num[2]
[9]>=
1&& num[3]
[9]>=
1&& e >=
1&& s >=
1&& w >=
1&& n >=
1&& b >=
1&& f >=
1&& z >=1)
cnt =0;
if(e ==2)
if(s ==2)
if(w ==2)
if(n ==2)
if(b ==2)
if(f ==2)
if(z ==2)
for(
int i =
1; i <=
3; i++)}
}if(cnt ==7)
bool flag =
false
;for
(int i =
1; i <=
3; i++)if
(num[i][1
]>=
3&& num[i][9
]>=
3&& num[i][2
]>=
1&& num[i][3
]>=
1&& num[i][4
]>=
1&& num[i][5
]>=
1&& num[i][6
]>=
1&& num[i][7
]>=
1&& num[i][8
]>=1)
}if(flag)
else
}return0;
}
從兩次做這種模擬題來看,考麻將,撲克,三國殺,大富翁等桌遊的機率還是很大呀,我們也應該去多熟悉一下
咕咕咕
ccf線上賽普及組 2020
a.文具訂購order 思路 首先,要花光所有的q,發現除了n 1,2,5以外都能被花光。觀察條件得知我們要盡可能的配套,盡可能多的14元。找完所有的14之後在將剩餘的盡可能分為3,4,這樣總數就更多滿足條件。1 include 2 include 3 include 4 using namespa...
2020CSP J普及組複賽(民間資料)題解
這一道題就是一道簽到題 這道題我們可以很快速的發現,若n為奇數 即n 2 1 則n必定無法拆分 若n為偶數,其實就只需要有以下操作 1.先通過計算2的k次冪,找到第乙個滿足大於等於n的值 2.計算當n k 0時,輸出k,隨後將k k 2 最後當n等於0,則輸出即為其優秀拆分 還可以直接把2的次冪打出...
CSP J2020普及組複賽T1 優秀的拆分
一般來說,乙個正整數可以拆分成若干個正整數的和 例如,1 1 1 11 1,10 1 2 3 4 10 1 2 3 4 10 1 2 3 4 等。對於正整數 n nn 的一種特定拆分,我們稱它為 優秀的 當且僅當在這種拆分下,nnnn nn被分解為了若干個不同的 2 22 的正整數次冪。注意,乙個數...