1樓:網友
首先從個位數來考慮:
5,**0(1-9中沒有0,捨去)
簡單的說:三個三位數的尾數要滿足的應該是。
1,2,3或2,4,6或3,6,9或4,8,2或6,2,8或7,4,1或8,6,4或9,8,7……(
接下來就是乙個乙個考率了:
對於1,2,3.它的十位數也應該滿足模態迅(*)但是應該沒有1,2,3這些數字)
剩下旦此8,6,4或9,8,7分別代入一下,明顯是不行的。
對於2,4,6它的十位數也要滿足(*)但是沒有2,4,6三個數字。
741或是987,分別代入就得到:192,384,576對於3,6,9.它的閉搏十位數滿足(*)不包含369)246或741,分別帶入得到:
273,546,819***到這裡為止三個用的是同樣道理。
對於4,8,12≈4,8,2的。
它的十位數應該是第三個的十位數-1,然後三個數的十位數也會滿足(*)並且不包含482三個數字,接下去也是同樣的道理:
經過一番計算後就可以得到滿足條件的數字分別是:
2樓:網友
設這三個數為x,2x,3x。此備前則x+2x+3x≡1+2+……9≡0(mod9)所以9整除6x,3整除的數字和為9或18.
若為9,則3x=612,621,531,513,423,432,342,324,315,351.經檢驗無符合條件的數。
若為18,則3x=981,972,963,954,945,936,927,918,891,873,864,846,837,819,792,783,765,756,738,729,693,684,675,657,648,639,594,576,567,549,495,486,468,459,396,387,378,369.經檢驗981,滾悶819,576,657符合條件。
所森清以共有4組:327,654,981;273,546,819;219,438,657;192,384,576.
noip98 連線多位數
3樓:
這是一道另類的排序問題。
排序的依據是:a後接b比b後接a大,就說"a>b"
如果是競賽的話,估計需要用堆才能使時間滿足要求。
**如下:#include
struct heap // 完成程式的堆int *m_nelements;
int m_nmaxsize, m_nsize;
// 初始化堆。
heap::heap(int n)
判斷資料a是否比資料b更優。
bool betterthan(int a, int b)// 獲得堆的某個結點的較優的子結點。
新增乙個值。
data;}}
刪除最大值。
ndata;}}
int main()
for (i = 0; i < n; i++)return 0;}
4樓:網友
[分析]
這是一道比較成功的題目。
極易想到的演算法是貪心法 - 按整數對應的字串大到小連線,因為題目的例子都符合,但是不難找到反例:
12 121 應該組成12121而非12112,那麼是不是相互包含的時候就從小到大呢?也不一定,如:
12 123 就是12312而非12112,那麼情況就多了。其實本題就是用貪心法,但是貪心標準不是上述那種,而是:
如果a後接b比b後接a大,就說"a>b"。直接輸出排序結果。正確性容易證明,大家自己試試。
pascal**,比較容易讀懂的:
vars:array[1..20] of string;
t:string;
i,j,k,n:longint;
beginwrite('n=');
readln(n);
for i:=1 to n do
beginread(k);
str(k,s[i]);
end;readln;
for i:=1 to n-1 do
for j:=i+1 to n do
if s[i]+s[j]begin
t:=s[i];
s[i]:=s[j];
s[j]:=t;
end;for i:=1 to n do
write(s[i]);
writeln;
end.
noip1998.連線多位數
5樓:匿名使用者
乙個簡單的排列問題。
先全排列一遍 然後比較並枝豎 結束。
可以直搭兄接用字絕大符串比較。
noip2015普及組複賽第一題
6樓:網友
你別這樣用檔案,因為這是競賽試題。
所以直接用freopen讀取檔案會更好。
這樣就可以直接用cin,cout
你可以先改了再來試一試程式。
如果不改檔案的話。
你先把fscanf前面的int day後面的都好改成分號。
noip2010提高組複賽第一題(被大牛們稱為水題)不會做!
7樓:俠盜機密
模擬法就可以了,開個陣列,在紙上寫寫畫畫,找個簡單的規律,就可以了。
8樓:網友
直接模擬啊,我是普及組的,第一題都很水啦,用個陣列記錄下記憶體的。
9樓:匿名使用者
第一題確實有點水,只要個陣列就搞定了。
10樓:清爽又勤懇灬小白楊
用hash維護是否在隊中。
不要忘了出對。
從左往右搜。
對大神來說4題都是水題。
下面是神牛a對b的話:你們最後一題怎麼用o(n*n*n)演算法 直接o(n*n)搞定。
我連第3題寫了並查集都a不掉。。。
noip資料太弱了 這麼好拿分 400分表示沒有壓力 noip貼吧直播虐人。
賽前裝若攢rp 賽後虐菜+rp 鄙視這種牛。
火車問題
11樓:資深天使投資人
分析:設up[i]為i站的上車人數、down[i]為i站的落車人數、p[i]為i站開出時車上的人數(1≤i≤n)。初始時up[1]=p[1]=a,down[1]=0。
依次列舉第2站的上車人數為1,2,……
設第2站的上車人胡明兆數為褲租k
up[2]=down[2]=k,p[2]=p[1]+up[2]-down[2]=a
按照下式遞推第3站…第n-1站的車上人數。
up[i]=up[i-1]+up[i-2]
down[i]=up[i-1]
p[i]=p[i-1]+up[i]-down[i]=p[i-1]+up[i-2] (3≤i≤n-1)
計算從x站開出時車上的人數。
若p[n-1]=m,則輸出p[x];否則k←k+1,返回①…,直至p[n-1]>m為止。因為p相對k是遞增的,因此在當前p[n-1]>m的情況下,無論k值怎樣增加也不會使得p[n-1]=m的。
源程式如下:
const maxn=100
var a,n,m,x ,k,i:integer;
p,down,up:array[1..maxn] of integer;
beginreadln(a,n,m,x);
fillchar(p,sizeof(p),0);
up[1]:=a;down[1] :0;p[1] :a;
k:=1;n:=n-1;
repeat
up[2]:=k;down[2]:=k;p[2]:=p[1];
for i:=3 to n do begin
up[i] :up[i-1]+up[i-2];
down[i] :up[i-1];
p[i] :p[i-1]+up[i-2];
end;if p[n]=m then
beginwriteln(p[x]);
readln;
exit;end;k:=k+1;
until p[n]>m;
writeln('槐乎no answer.')
end.
noip2007複賽提高組第一題答案
12樓:網友
#include
#include
#define len 200000
int a[len],temp,mid;
int sort(int *a,int low,int high) /一趟快排。
mid=a[low];
while (low=mid) high--;
temp=a[low];a[low]=a[high];a[high]=temp;
while (lowtemp=a[low];a[low]=a[high];a[high]=temp;
return low;
void quicksort(int *a,int low,int high) /快排遞迴。
int mid;
if (low < high)
mid=sort(a,low,high);
quicksort(a,low,mid-1);
quicksort(a,mid+1,high);
int main()
file *fp;
int i,j,n,sum;
fp=fopen("","r");
fscanf(fp,"%d",&n);
for (i=0;ifscanf(fp,"%d",&a[i]);
fclose(fp);
quicksort(a,0,n-1); 呼叫快排。
fp=fopen("","w");
for (i=sum=0;iif (a[i+1]!=a[i]) sum++;
for (n=1,i=0,j=0;iwhile (a[j+1]==a[j])
fprintf(fp,"%d %d",a[j],n);
printf("%d %d",a[j],n);
n=1;fclose(fp);
return 1;
system("pause");
100%正確,後面有註釋!
noip2012普及組複賽第4題文化之旅
13樓:yoki颯
1、最優性剪枝 (ans < nowdist + mindist)(nowdist當前走過的路程,mindist至少還要走多遠).
2、刪去所有影響終點的城市(不可能走到的……)3、倒搜。
說實話給 pj 組的寫 std 時是這麼寫的……ac過了。
雖然怎麼說倒搜似乎有些說不過。
另把倒搜換成下面的剪枝也是可以過的。
設定乙個x,從終點向外拓展x層。
每走乙個城市看是否這x層中的任意一層被封鎖。
上述的確有些鬱悶,因為x取小作用不大,取大又降低了程式執行速度。
可以考慮將所有拓展層全部求出來。每層跳躍一次。
100個點的圖如果想卡人的話,層數不會太多的,最多10層左右。
不過後面的沒有實現了。std x 取1就可以過。
程式在學校的說……明天中午發過來》_<
noip 2010 c++提高組 複賽第一題 :機器翻譯 要求:**+註釋+演算法分析
14樓:匿名使用者
#include
using namespace std;
int main()
bool f=false;//
int t,i,j,n,z=1,l=1,x=1,m;
int b[1005]={記憶體。
cin>>n>>m;
cin>>t;
b[1]=t;
for(i=2;i<=m;i++)
cin>>t;//輸搭尺入單詞。
for(j=1;j<=l;j++)
if(b[j]==t)
break;//內差枝譽存中有這個單詞。
if(j==l+1)//沒有這個單詞。
x++;if(!f)
z++;l++;
if(l==n)
f=true;
b[z]=t;
elsez++;
if(z==n+1)
z=1;b[z]=t;
for(j=1;j<=n;j++)
cout《虛段coutreturn 0;
數字1 9代表什麼意思,1 9代表什麼意思呀?
1.一元開泰。2.好事成雙。3.生生不息。4.四平八穩。5.如日中天。6.三教九流。7.大起大落。8.四平八穩。9.道法自然。0一個簡單的圓圈,起點就是終點,終點即為起點。1 按照中國古代哲學,最初一切開始於 太極 然後由太極生太一,太一生陰陽,陰陽生五行,五行生萬物。2 在中國古代數字學中,2是偶...
19e數字便民可靠嗎?有人在使用19E數字便民嗎?感覺怎麼樣 希望真實!謝謝!
可靠,有許可證還在公安局備案的。安全是可靠,但是技術跟不上,有時候顯示元以下的話費充不了,有時候甚至連的都顯示系統繁忙,請梢後再試,有時候又是交易失敗,為此我的很多老顧客都不來交費了,很是窩火,準備退掉了,才用來天。實在沒別的系統可用的話,可以考慮用e,因為它經常會衝不到帳,又退不了錢,顧客會和你吵...
用1 9這數字構成的無重複數字的九位數中,有且只有偶數相鄰的九位數有幾個
老黃知識共享 1 9中有4個偶數2,4,6,8 1 9中有5個奇數1,3,5,7,9 五個奇數有5x4x3x2 120種排列 5個奇數形成5 1 6個間隔,包括頭尾 6個間隔取3個用來插入資料,有間有6x5x4 120種取法在5個奇數的間隔中,取出三個間隔來插入資料一共有120x120 14400種...